複数の文字をまとめて扱う「文字列(string)」とは?C言語の基本をやさしく解説!
「名前」や「メッセージ」など、文字が連なったものを扱うときに使うのが文字列(string)です。
C言語では、文字列は「文字の配列」+「終端文字(\0)」で表されます。
文字列とは?
C言語における文字列は、char型
の配列でできています。
そして、文字列の終わりには必ず「\0(ヌル文字)」が入っています。
基本の書き方
char name[6] = "Sato"; // 自動的に '\0' が末尾につく
char word[] = {'H', 'e', 'l', 'l', 'o', '\0'}; // 同じ意味
文字列の出力
printf("%s\n", name); // 出力:Sato
%s
は「文字列」を表示するための書式指定子です。
文字列の入力
char str[20];
scanf("%s", str); // 1単語の入力(空白まで)
scanf
ではスペース以降が無視されるため注意が必要です。
文字列操作に使える標準関数(string.h)
関数 |
役割 |
例 |
strlen |
文字列の長さを取得 |
strlen("Hello") → 5 |
strcpy |
文字列のコピー |
strcpy(dst, src); |
strcmp |
文字列の比較 |
strcmp("abc", "abc") → 0 |
strcat |
文字列の結合 |
strcat(s1, s2); |
注意点
- 終端の
'\0'
を忘れるとバグの原因に
- 配列サイズを超える入力に注意(バッファオーバーラン)
- 直接代入はできない(例:
name = "Tanaka";
はNG)
まとめ
C言語における文字列(string)は「文字の配列」+「終端文字(\0)」で成り立っています。
初心者の方は、表示(printf)・コピー(strcpy)・比較(strcmp)の基本操作を中心に練習してみましょう!