C 言語における文字列の扱い方
C言語では文字の配列にある文字の並びを文字列 (string) とよび、C言語には文字列型というデータ型はありません。文字の配列を利用して文字列を表し、特定の組み込み関数と演算子を用いて操作します。
C言語では、次のように文字列を宣言し、初期化できます。
char str[] = "Hello World";
char str[12] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '\0'};
char str[12];
strcpy(str, "Hello World");
上のコードでは、文字列を表す char 型の配列「str」を宣言します。文字列は、null 文字(’\0’)で終わります。文字列は、文字列リテラルや char 型配列を使用して初期化できます。また、文字列を char 型配列にコピーするために strcpy 関数を使用することもできます。
文字列の操作には次のような組み込み関数を使用できます:
- strlen:返回字符串的长度(不包括结束符)。
- strcat:二つの文字列を連結します。
- strcmp: 文字列が等しいかどうかを比較する。
- strchr:文字列中に指定した文字が最初に現れる位置を見つける
- strstr: 文字列内でのサブストリングの最初が出現する場所を検索します。
以下にこれらの関数の基本的な使い方の例を示します:
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "Hello";
char str2[] = "World";
int length = strlen(str1);
printf("Length of str1: %d\n", length);
strcat(str1, str2);
printf("Concatenated string: %s\n", str1);
int result = strcmp(str1, str2);
if (result == 0) {
printf("Strings are equal\n");
} else {
printf("Strings are not equal\n");
}
char* found = strchr(str1, 'o');
printf("First occurrence of 'o': %s\n", found);
char* found2 = strstr(str1, "Wo");
printf("First occurrence of 'Wo': %s\n", found2);
return 0;
}
上のコードでは、文字列操作を実行するために上記関数を使用しています。これらの関数を使いこなすにはヘッダーファイル”string.h”をインクルードする必要があることにご注意ください。