C++ 文字列関数: strcpy()、strcat()、strlen()、strcmp() の例

文字列とは

文字列は一連の文字です。 C++ 文字列は std::string クラスのオブジェクトです。 文字はバイトのシーケンスとして保存され、単一の文字バイトへのアクセスが許可されます。

C++ 文字列はメモリを動的に割り当てます。 必要に応じて、実行時にさらに多くのメモリを文字列に割り当てることができます。 メモリの事前割り当てがないため、メモリの無駄がありません。 比較、連結、変換など、文字列に対してさまざまな操作を実行できます。

文字列の宣言

C++ は XNUMX 種類の文字列宣言をサポートしています。

  • Cスタイルの文字列
  • 文字列クラス型

C スタイルの文字列

このタイプの文字列宣言は、 Cプログラミング言語。 C++ は引き続きこれをサポートします。 これは、NULL 文字 (\0) で終わる単なる文字の XNUMX 次元配列です。 NULL で終わる文字列には、文字列を構成する文字の後に NULL が続きます。

以下の文字列宣言を考えてみましょう。

char name[5] = {'J', 'o', 'h', 'n', '\0'};

上記の宣言により、John という単語を形成する文字列が作成されます。 単語には 4 文字がありますが、文字列のサイズは 5 です。余分なスペースにより、ヌル文字を保持できます。

配列初期化ルールを使用すると、上記のステートメントを次のように記述できます。

char name[] = "John";

文字列定数の末尾に null 文字を置く必要はないことに注意してください。 C++ コンパイラは、配列の初期化時に文字列の末尾に「\0」を自動的に配置します。

std ::文字列

標準 C++ ライブラリは、さまざまな文字列操作をサポートする文字列クラスを提供します。 std::string として記述されます。

このクラスを使用するには、まず、以下に示すように #include プリプロセッサを使用してこのクラスをワークスペースに含める必要があります。

#include<string>

次に、string キーワードを使用して文字列を宣言できます。 例えば:

string name = "John";

上記のステートメントは、値 John を保持する name という名前の文字列を作成します。

文字列値へのアクセス

In C + +、文字列名を使用して文字列値にアクセスできます。 例えば:

#include <iostream>
using namespace std;
int main() {
	char name[5] = { 'J', 'o', 'h', 'n', '\0' };
	cout << "String value is: ";
	cout << name << endl;
	return 0;
}

出力:

文字列値へのアクセス

コードのスクリーンショットは次のとおりです。

文字列値へのアクセス

コードの説明:

  1. コードに iostream ヘッダー ファイルを含めます。 これにより、コンソールからの読み取りとコンソールへの書き込みが可能になります。
  2. std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにします。
  3. プログラムのロジックを追加する main() 関数を呼び出します。 { は、main() 関数の本体の開始を示します。
  4. 文字列を宣言し、名前を付けます。 文字列には値 John が格納されます。 余分なスペースにはヌル文字が格納されます。
  5. コンソールにテキストを出力します。
  6. name という名前の文字列の値をコンソールに出力します。
  7. プログラムが正常に実行される場合、main() 関数は値を返す必要があります。
  8. main() 関数の本体の終わり。

C++ 標準文字列クラスを使用した別の例を次に示します。

#include <iostream>
#include <string>
using namespace std;
int main() {

	string name = "Guru99";
	
	cout << "The name is : " << name << endl;

	return 0;
}

出力:

文字列値へのアクセス

コードのスクリーンショットは次のとおりです。

文字列値へのアクセス

コードの説明:

  1. コードに iostream ヘッダー ファイルを含めます。 これにより、コンソールからの読み取りとコンソールへの書き込みが可能になります。
  2. コードに標準の文字列クラスを含めます。
  3. std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにします。
  4. プログラムのロジックを追加する main() 関数を呼び出します。 { は、main() 関数の本体の開始を示します。
  5. 文字列を宣言し、それに名前を付けます。 文字列には値 Guru99 が格納されます。
  6. 文字列名の値をテキストとともにコンソールに出力します。
  7. プログラムが正常に実行される場合、main() 関数は値を返す必要があります。
  8. main() 関数の本体の終わり。

C++ の文字列関数

文字列を操作したい場合もよくあります。 C++ は、これに使用できる幅広い関数を提供します。 これらの関数は CString クラスで定義されているため、関数を使用するにはコードに CString クラスを含める必要があります。 いくつか議論してみましょう:

strcpy()

これが文字列コピー関数です。 ある文字列を別の文字列にコピーします。

構文:

strcpy(string1, string2);

関数の 1 つのパラメーター string2 と string1 は文字列です。 この関数は、文字列 string1 を文字列 XNUMX にコピーします。

strcat()

これが文字列連結関数です。 文字列を連結します。

構文:

strcat(string1, string2);

関数の 1 つのパラメーター string2 と string2 は、連結される文字列です。 上記の関数は、文字列 string1 を文字列 stringXNUMX の末尾に連結します。

strlen()

これは文字列長関数です。 引数として渡された文字列の長さを返します。

構文:

strnlen(string1)

パラメータ string1 は、長さを決定する文字列の名前です。 上記の関数は、文字列 string1 の長さを返します。

strcmp()

これは文字列比較関数です。 文字列の比較に使用されます。

構文:

strcmp(string1, string2);

上記の関数は、文字列 string0 と string1 が類似している場合は 2 を返し、string0 の場合は 1 より小さい値を返します。 文字列2。

例:

次のことwing 例は、上記の文字列関数の使用方法を示しています。

#include <iostream>
#include <cstring>
using namespace std;
int main() {

	char name1[10] = "Guru99";
	char name2[10] = "John";
	char name3[10];

	int  len;
	strcpy(name3, name1);
	cout << "strcpy( name3, name1) : " << name3 << endl;

	strcat(name1, name2);
	cout << "strcat( name1, name2): " << name1 << endl;

	len = strlen(name1);
	cout << "strlen(name1) : " << len << endl;
	return 0;
}

出力:

C++ の文字列関数

コードのスクリーンショットは次のとおりです。

C++ の文字列関数

コードの説明:

  1. コードに iostream ヘッダー ファイルを含めます。 これにより、コンソールからの読み取りとコンソールへの書き込みが可能になります。
  2. コードに標準の CString クラスを含めます。
  3. std 名前空間を含めて、そのクラスと関数を呼び出さずに使用できるようにします。
  4. プログラムのロジックを追加する main() 関数を呼び出します。 { は、main() 関数の本体の開始を示します。
  5. 10 文字の文字列を宣言し、name1 という名前を付けます。 文字列には値 Guru99 が格納されます。
  6. 10 文字の文字列を宣言し、name2 という名前を付けます。 文字列には値 John が格納されます。
  7. 10 文字の文字列を宣言し、それに name3 という名前を付けます。
  8. を宣言する 整数変数 レンという名前。
  9. 文字列 name1 を文字列 name3 にコピーします。
  10. 文字列 name1 の値をテキストとともにコンソールに出力します。 Guru99 が出力されるはずです。
  11. 文字列 name2 を文字列 name1 の末尾に連結します。 name1 の値は Guru99John になりました。
  12. 文字列 name1 の値をテキストとともにコンソールに出力します。 Guru99John と出力されるはずです
  13. name1 という名前の文字列の長さを決定し、その長さの値を変数 len に割り当てます。
  14. len 変数の値を他のテキストと一緒にコンソールに出力します。
  15. プログラムが正常に実行される場合、main() 関数は値を返す必要があります。
  16. main() 関数の本体の終わり。

まとめ

  • 文字列は一連の文字です。
  • 文字列は、C++ の標準文字列クラスに属します。
  • C スタイルの文字列または標準の文字列クラスを使用して文字列を宣言できます。
  • strcpy() 関数は、ある文字列を別の文字列にコピーします。
  • strcat() 関数は XNUMX つの関数を連結します。
  • strlen() 関数は関数の長さを返します。
  • strcmp() 関数の補完ares XNUMX本の弦。