C言語文字列とその関数
C言語にはC++やJavaのような
C言語における文字列は、空白文字
目次文字列 文字列関数 文字列
文字列は通常、二重引用符
文字列のスペースも含まれます.次のように作成できます.
複数の二重引用符の間に自動的に直列に接続され、上記の2つの方法は等価です.角カッコの数字は省略できます.コンパイラは配列のサイズを自動的に計算します.
文字列は、一般的な配列で定義することもできます.
この方式は面倒であり、特に最後の空文字
空の文字
ポインタで文字列を作成することもできます.たとえば、
文字列関数
C言語ライブラリには、 strlen()
統計文字列の長さ、たとえば
文字列の長さの値を返します. strcat()
文字列接合のために、文字列
1番目の文字列アドレスを返します.
文字列 strncat()
文字列の結合にも使用され、追加文字数を指定します.
5文字目に追加するか、空の文字に遭遇した場合に停止します. strcmp()
2つの文字列の文字を辞書順(ASCIIコード)で順次比較します.
この関数は文字ではなく文字列を比較します.比較文字は論理演算子を直接使用できます. strncmp()
比較する長さを指定します.たとえば、
限定関数は最初の5文字のみを比較します. strcpy()
文字列コピー(文字列の割り当て操作に相当)
文字列
ソース文字列のサイズが収まるかどうかに注意してください.
この関数が返すタイプは
この関数は、コピーの場所を指定することもできます. strncpy()
この関数はコピー文字列であり、コピーの最大文字数を指定できます.
コピーのコピーに空の文字があるとは限りません. sprintf()
この関数は
この関数の最初のパラメータはターゲット文字列アドレスであり、残りのパラメータは
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(str);
文字列の長さの値を返します.
文字列接合のために、文字列
str2
を文字列str1
の後に付加し、文字列str2
は変わらない.strcat(str1, str2);
1番目の文字列アドレスを返します.
文字列
str1
の大きさは、下綴じ後の文字列を収容できることに注意してください.文字列の結合にも使用され、追加文字数を指定します.
strncat(str1, str2, 5);
5文字目に追加するか、空の文字に遭遇した場合に停止します.
strcat()
関数の不足を補うことができます.2つの文字列の文字を辞書順(ASCIIコード)で順次比較します.
strcmp(str1, str2);
str1
がstr2
の前にあるとき、負の数を返します.同じ場合は0を返します.後に正数を返すと.返される値は実装に依存します.この関数は文字ではなく文字列を比較します.比較文字は論理演算子を直接使用できます.
比較する長さを指定します.たとえば、
strncmp(str1, str2, 5);
限定関数は最初の5文字のみを比較します.
strcmp()
関数は末尾まで比較されます.文字列コピー(文字列の割り当て操作に相当)
strcpy(str1, str2);
文字列
str2
を文字列str1
str1
にコピーすることをターゲット文字列、str2
をソース文字列と呼ぶ.ソース文字列のサイズが収まるかどうかに注意してください.
この関数が返すタイプは
char *
で、1番目のパラメータのアドレスです.この関数は、コピーの場所を指定することもできます.
strcpy(str1 + 5, str2);
str1
の0番目から4番目の位置の文字を保持できます.この関数はコピー文字列であり、コピーの最大文字数を指定できます.
strncpy(str1, str2, 5);
str2
の5番目または空の文字の前の文字をstr1
にコピーします.コピーのコピーに空の文字があるとは限りません.
\0
関数の不足を補うこの関数は
strcpy()
であり、stdio.h
ではない.文字列にデータを書き込む.この関数の最初のパラメータはターゲット文字列アドレスであり、残りのパラメータは
string.h
と同じである.printf()
関数の使用方法を確認します.