C 文字列関数
文字列関数
C には、文字列に対して特定の操作を実行するために使用できる便利な文字列関数も多数あります。
これらを使用するには、プログラムに<string.h>
#include <string.h>
文字列の長さ
たとえば、文字列の長さを取得するには、strlen()
関数を使用できます。
sizeof
を使用して文字列/配列のサイズを取得しました。 sizeof
にはカウント時に \0
文字も含まれるため、sizeof
と strlen
の動作が異なることに注意してください。
例
char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%d", strlen(alphabet)); // 26
printf("%d", sizeof(alphabet)); // 27
sizeof
は実際の文字列の長さではなく、常にメモリ サイズ (バイト単位) を返すことを知っておくことも重要です。
例
char alphabet[50] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
printf("%d", strlen(alphabet)); // 26
printf("%d", sizeof(alphabet)); // 50
文字列の連結
2 つの文字列を連結 (結合) するには、strcat()
関数を使用できます。
例
char str1[20] = "Hello ";
char str2[] = "World!";
// Concatenate str2 to str1 (result is stored in str1)
strcat(str1, str2);
// Print str1
printf("%s", str1);
str1
のサイズは2 つの文字列を結合した結果を格納するのに十分な大きさにする必要がありますので注意してください。 (この例では 20)。
文字列をコピーする
ある文字列の値を別の文字列にコピーするには、strcpy()
関数を使用できます。
例
char str1[20] = "Hello World!";
char str2[20];
// Copy str1 to str2
strcpy(str2, str1);
// Print str2
printf("%s", str2);
str2
のサイズはコピーされた文字列を格納するのに十分な大きさである必要がありますので注意してください。 (この例では 20)。
文字列を比較する
2 つの文字列を比較するには、strcmp()
関数を使用できます。
2 つの文字列が等しい場合は 0
を返し、そうでない場合は 0 以外の値を返します。
例
char str1[] = "Hello";
char str2[] = "Hello";
char str3[] = "Hi";
// Compare str1 and str2, and print the result
printf("%d\n", strcmp(str1, str2)); // Returns 0 (the strings are equal)
// Compare str1 and str3, and print the result
printf("%d\n", strcmp(str1, str3)); // Returns -4 (the strings are not equal)
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。