C言語文字列とその関数


C言語にはC++やJavaのようなstringのタイプはありませんが、Cで文字列を表す場合は文字配列の形式が使用できます.配列の概念はここで簡単に説明します.
C言語における文字列は、空白文字\0で終わるchar型配列である.本文はその基本的な知識と関数を簡単に説明します.
目次
  • 文字列
  • 文字列関数
  • 文字列
    文字列は通常、二重引用符"で囲まれ、文字列定数と呼ばれ、コンパイラは自動的に末尾に\0、例えば
    char str[50] = "Hello World!";
    

    文字列のスペースも含まれます.次のように作成できます.
    char str[50] = "Hello " "World!";
    

    複数の二重引用符の間に自動的に直列に接続され、上記の2つの方法は等価です.角カッコの数字は省略できます.コンパイラは配列のサイズを自動的に計算します.
    char str[] = "Hello World!";
    

    文字列は、一般的な配列で定義することもできます.
    char str[50] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '\0'};
    

    この方式は面倒であり、特に最後の空文字\0に注意しなければならない.
    空の文字\0も位置を占めており、配列サイズを指定するときは文字列の長さに1を加えることを保証します.
    ポインタで文字列を作成することもできます.たとえば、
    char * ptr = "Hello World!";
    

    文字列関数
    C言語ライブラリには、string.hに含まれる複数の文字列処理関数が用意されています.したがって、これらの関数を使用するには、このヘッダファイルを含む必要があります.
    #include 
    
  • strlen()

  • 統計文字列の長さ、たとえば
    strlen(str);
    

    文字列の長さの値を返します.
  • strcat()

  • 文字列接合のために、文字列str2を文字列str1の後に付加し、文字列str2は変わらない.
    strcat(str1, str2);
    

    1番目の文字列アドレスを返します.
    文字列str1の大きさは、下綴じ後の文字列を収容できることに注意してください.
  • strncat()

  • 文字列の結合にも使用され、追加文字数を指定します.
    strncat(str1, str2, 5);
    

    5文字目に追加するか、空の文字に遭遇した場合に停止します.strcat()関数の不足を補うことができます.
  • strcmp()

  • 2つの文字列の文字を辞書順(ASCIIコード)で順次比較します.
    strcmp(str1, str2);
    
    str1str2の前にあるとき、負の数を返します.同じ場合は0を返します.後に正数を返すと.返される値は実装に依存します.
    この関数は文字ではなく文字列を比較します.比較文字は論理演算子を直接使用できます.
  • strncmp()

  • 比較する長さを指定します.たとえば、
    strncmp(str1, str2, 5);
    

    限定関数は最初の5文字のみを比較します.strcmp()関数は末尾まで比較されます.
  • strcpy()

  • 文字列コピー(文字列の割り当て操作に相当)
    strcpy(str1, str2);
    

    文字列str2を文字列str1str1にコピーすることをターゲット文字列、str2をソース文字列と呼ぶ.
    ソース文字列のサイズが収まるかどうかに注意してください.
    この関数が返すタイプはchar *で、1番目のパラメータのアドレスです.
    この関数は、コピーの場所を指定することもできます.
    strcpy(str1 + 5, str2);
    
    str1の0番目から4番目の位置の文字を保持できます.
  • strncpy()

  • この関数はコピー文字列であり、コピーの最大文字数を指定できます.
    strncpy(str1, str2, 5);
    
    str2の5番目または空の文字の前の文字をstr1にコピーします.
    コピーのコピーに空の文字があるとは限りません.\0関数の不足を補う
  • sprintf()

  • この関数はstrcpy()であり、stdio.hではない.文字列にデータを書き込む.
    この関数の最初のパラメータはターゲット文字列アドレスであり、残りのパラメータはstring.hと同じである.printf()関数の使用方法を確認します.