工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

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

文字列とは?

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

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

この C++ チュートリアルでは、次のことを学びます:

文字列の宣言

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

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;
}

出力:

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

コードの説明:

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

    #include <iostream>
    #include <string>
    using namespace std;
    int main() {
    
    	string name = "Guru99";
    	
    	cout << "The name is : " << name << endl;
    
    	return 0;
    }
    

    出力:

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

    コードの説明:

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

    文字列を操作したいことがよくあります。 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 を返し、string1string2 の場合は 0 より大きい.

    例:

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

    #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;
    }
    

    出力:

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

    コードの説明:

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


    C言語

    1. Java 文字列
    2. Java列挙型文字列
    3. C++ の変数と型:int、double、char、string、bool
    4. C++ の配列 |宣言する |初期化 |配列へのポインタの例
    5. C++ do…while ループと例
    6. C++ ポインタと例
    7. C++ Char データ型と例
    8. C++ 演算子のオーバーロードと例
    9. C++ 関数とプログラム例
    10. C の文字列:変数の宣言、初期化、印刷、例の方法
    11. 部分文字列と例を含む Java String indexOf() メソッド