導入
C の文字列は、char の配列で表します(末尾に見えない終端記号 '\0' が入ります)。<string.h> の関数で長さを測ったり連結したりできます。
説明
char 名前[] = "文字列"; で作れます。全体は %s、1文字は %c で表示できます。1文字ずつは配列と同じく番号でアクセスできます。
#include <stdio.h>
int main(void) {
char word[] = "Hello";
printf("%s\n", word); // Hello(全体)
printf("%c\n", word[0]); // H(先頭の1文字)
return 0;
}
<string.h> を使うと、長さ strlen や連結 strcat、コピー strcpy が使えます。連結先には十分な大きさの配列を用意しておきます。
#include <stdio.h>
#include <string.h>
int main(void) {
char s[20] = "Become";
printf("長さ %d\n", (int)strlen(s)); // 6
strcat(s, "Coder"); // 後ろに連結
printf("%s\n", s); // BecomeCoder
return 0;
}
1文字ずつ回すこともできます。文字列の末尾は終端記号 '\0' なので、そこまでを長さとして扱います。
#include <stdio.h>
#include <string.h>
int main(void) {
char s[] = "abc";
for (int i = 0; i < (int)strlen(s); i++) {
printf("%c-", s[i]); // a-b-c-
}
printf("\n");
return 0;
}
やってみよう
word の中身を変えたり、strcat でつなぐ文字を変えたりして、結果を確かめましょう。
演習
char s[] = "Programming"; の文字数を strlen で表示してください(結果は 11)。
ヒント1を見る
#include <string.h> を書き、printf("%d\n", (int)strlen(s));。