C言語-文字列処理
前へ 目次へ 次へ 

1.2 文字列

 C言語で文字列を扱うには、char型の配列を使用しなければならない。char型では変数の大きさが1バイトなので、1文字しか格納できないためである。

char x; : 変数x用に1バイトの領域がメモリ上に確保される。
char a[80]; : 配列a用に連続した80バイトの領域がメモリ上に確保される。


入力した文字列を表示する。 [pro1-3.c]

 1:
 2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
10:
11:
#include <stdio.h>

int main(void)
{
    char buff[256];        /* 入力文字列 */

    printf("文字列 : ");    /* プロンプト表示 */
    gets(buff);            /* 文字列入力 */
    printf("文字列は%sです\n", buff);   /* 入力文字列表示 */ 
    return(0);
}
実行結果
文字列1 : abcd
文字列2 :
efgh
文字列1はabcdです
文字列2はefghです

 実行例のように入力した場合、配列buffには図のように各文字が格納される。

Memory

 5行目で文字列を格納するためのchar型配列を宣言している。配列の個数256は余裕を持たせてある。
 9行目の文字列表示の指定には、%sを使用する。%sは指定されたアドレス(この場合buff)からナル文字(\0)までが表示される。
 配列に格納された文字列を1文字ずつ参照(取り出し)するには、配列を添字付きで使用する。例えば、buff[0]でa、buff[4]でeが参照できる。

 

【練習問題1-1】 文字列を2つ入力し、表示するプログラムを完成しなさい。[ren1-1.c]

 1:
 2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
10:
11:
12:
13:
14:
15:
16:
17: 
#include <stdio.h>

int main(void)
{
    char buff1[256];    /* 入力文字列用 */
    char buff2[256];    /* 入力文字列用 */

    printf("文字列1 : ");    /* プロンプト表示 */
    gets(buff1);            /* 文字列入力 */

    [ @ ]
    [ A ]

    printf("文字列1は[ B ]です\n", buff1);
    printf("文字列2は[ C ]です\n", buff2);
    return(0);
}
[解答欄] (すべて半角文字で、空白文字もチェックされます。)
@   A   B   C
     
実行結果
文字列1 : abcd
文字列2 :
efgh
文字列1はabcdです
文字列2はefghです
解答欄には入力エリアが二つありますが、左側の入力エリアに選択肢の番号を入力してください。
解答チェックのボタンをクリックすると判定され、結果(○、×)を右側に表示します。
解答のボタンをクリックするとその右側に答えが表示されます。



前へ 目次へ 次へ 
Copyright © 2001 Hiroshi Masuda 

 

 

inserted by FC2 system