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には図のように各文字が格納される。
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); } |
文字列1 : abcd 文字列2 : efgh 文字列1はabcdです 文字列2はefghです |
解答欄には入力エリアが二つありますが、左側の入力エリアに選択肢の番号を入力してください。 解答チェックのボタンをクリックすると判定され、結果(○、×)を右側に表示します。 解答のボタンをクリックするとその右側に答えが表示されます。 |
Copyright © 2001 Hiroshi Masuda |