C++ 文字列:strcpy()、strcat()、strlen()、strcmp() 例
文字列とは?
文字列は一連の文字です。 C++ 文字列は std::string クラスのオブジェクトです。文字は、単一文字バイトへのアクセスが許可された、格納されたバイト シーケンスです。
C++ 文字列はメモリを動的に割り当てます。必要に応じて、実行時に文字列により多くのメモリを割り当てることができます。メモリの事前割り当てがないため、メモリの無駄がありません。比較、連結、変換など、文字列に対してさまざまな操作を実行できます。
この C++ チュートリアルでは、次のことを学びます:
- 文字列とは?
- 文字列の宣言
- C スタイルの文字列
- 標準::文字列
- 文字列値へのアクセス
- 文字列関数:
- strcpy()
- strcat()
- strlen()
- strcmp()
文字列の宣言
C++ は 2 種類の文字列宣言をサポートしています:
- C スタイルの文字列
- 文字列クラス タイプ
C スタイルの文字列
このタイプの文字列宣言は、C プログラミング言語で導入されました。 C++ は引き続きサポートします。これは、ヌル文字 (\0) で終わる単純な文字の 1 次元配列です。 null で終わる文字列には、文字列を構成する文字があり、その後に null が続きます。
以下の文字列宣言を検討してください:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
上記の宣言は、単語 John を形成する文字列を作成します。単語は 4 文字ですが、文字列のサイズは 5 です。余分なスペースにより、ヌル文字を保持できます。
配列の初期化規則を使用すると、上記のステートメントを次のように記述できます。
char name[] = "John";
文字列定数の末尾にヌル文字を配置する必要はないことに注意してください。 C++ コンパイラは、配列を初期化するときに文字列の最後に自動的に「\0」を配置します。
std::文字列
標準 C++ ライブラリには、さまざまな文字列操作をサポートする文字列クラスが用意されています。 std::string と書かれています。
このクラスを使用するには、まず、以下に示すように #include プリプロセッサを使用してワークスペースに含める必要があります:
#include<string>
次に、string キーワードを使用して文字列を宣言できます。例:
string name = "John";
上記のステートメントは、値 John を保持する name という名前の文字列を作成します。
文字列値へのアクセス
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; }
出力:
コードのスクリーンショットは次のとおりです:
コードの説明:
<オール>C++ 標準文字列クラスを使用した別の例を次に示します:
#include <iostream> #include <string> using namespace std; int main() { string name = "Guru99"; cout << "The name is : " << name << endl; return 0; }
出力:
コードのスクリーンショットは次のとおりです:
コードの説明:
<オール>文字列関数:
文字列を操作したいことがよくあります。 C++ には、このために使用できるさまざまな関数が用意されています。これらの関数は CString クラスで定義されているため、関数を使用するにはコードに含める必要があります。いくつか議論しましょう:
strcpy()
これが文字列コピー機能です。ある文字列を別の文字列にコピーします。
構文:
strcpy(string1, string2);
関数の 2 つのパラメーター string1 と string2 は文字列です。この関数は、文字列 string1 を文字列 1 にコピーします。
strcat()
これは文字列連結関数です。文字列を連結します。
構文:
strcat(string1, string2);
関数の 2 つのパラメーター string1 と string2 は、連結される文字列です。上記の関数は、文字列 string2 を文字列 string1 の末尾に連結します。
strlen()
これが文字列長関数です。引数として渡された文字列の長さを返します。
構文:
strnlen(string1)
パラメータ string1 は、長さを決定する文字列の名前です。上記の関数は、文字列 string1 の長さを返します。
strcmp()
これが文字列比較関数です。文字列の比較に使用されます。
構文:
strcmp(string1, string2);
上記の関数は、文字列 string1 と string2 が類似している場合は 0 を返し、string1
例:
次の例は、上記の文字列関数の使用方法を示しています:
#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 スタイルの文字列または標準の文字列クラスを使用して文字列を宣言できます。
- strcpy() 関数は、ある文字列を別の文字列にコピーします。
- strcat() 関数は、2 つの関数を連結します。
- strlen() 関数は、関数の長さを返します。
- strcmp() 関数は、2 つの文字列を比較します。
C言語