複数の単語がスペースで区切られた文字列を分解し 各単語をchar型の二次元配列に格納する
str[0] : "hello" str[1] : "C" str[2] : "Programming" str[3] : "world!"
#include <stdio.h> # define _SPACE 0x20 int main(void) { int i; char buf[1024 + 1]; char str[4][256 + 1]; char *s, *d; /* 文字列(スペース区切り)を入力 */ printf("input : "); (void)gets(buf); /* 入力内容を表示 */ printf("buf = %s\n", buf); s = buf; /* 送り側のポインタをセット */ for (i=0; i<4; i++) { /* 配列の数だけ繰り返す */ d = str[i]; /* 受け側のポインタをセット */ while ((*d++ = *s++) != _SPACE) { /* スペースが出るまでコピー */ } *d = '\0'; /* 終端のNULLをセット */ } /* 配列の内容を表示 */ for (i=0; i<4; i++) { printf("str[%d] : %s\n", i, str[i]); } }
s = buf; /* 送り側のポインタをセット */ for (i=0; i<4; i++) { /* 配列の数だけ繰り返す */ d = str[i]; /* 受け側のポインタをセット */ while ((*d++ = *s++) != _SPACE) { /* スペースが出るまでコピー */ } *d = '\0'; /* 終端のNULLをセット */ }
【質問1】コラムをどれくらい読みましたか?
熟読した 途中でやめた さっと目を通した 印刷してこれから読む
【質問2】役に立つ内容でしたか?
参考になった 参考にならなかった
ご自由にコメントを記入してください