本文へスキップ
BecomeCoder

C言語コース · 第5章 配列と文字列 · レッスン21

C文字列 ― 文字の配列

ブラウザで完結

導入

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));

実際に動かしてみよう

下のエディタにCを書いて「実行」を押すと、ブラウザ内のインタプリタで出力が表示されます。本文の例をそのまま試したり、書き換えたりしてみましょう(scanf を使う回は「標準入力」欄に値を入れてから実行します)。

C/C++ — ブラウザ内で実行

ブラウザ内でC/C++を動かす学習用インタプリタ(JSCPP)を読み込みます(入門向けのサブセットです)。
スクロールして表示された時点でも自動で読み込まれます。