#include #define MAXCHAR 10 /* 10 文字分ってやつ */ void main () { char str[MAXCHAR + 1]; /* ※文字列なので '\0' の分も加味する */ int index, input, atmark; atmark = 0; /* 終了フラグ: 行頭での '@' 出現で 1 になる */ while (atmark < 1) { /* 終了条件 atmark == 1 になるまで繰り返し */ printf("文字列を入力して下さい:"); index = 0; while ((input = getchar()) != '\n') { /* '\n' が出現するまで繰り返し */ if (index < MAXCHAR) { /* 最大文字数に達するまで繰り返し */ str[index] = input; if (index == 0) { /* 行頭 (index が 0) の時のみの処理 */ if (input == '@') { atmark = 1; /* 行頭が '@' ならフラグを立てる */ } } else { /* 2 桁目以降が '\n' 以外のときは atmark を初期化する */ atmark = 0; } } else { /* 最大文字数に達したのでループを抜ける */ break; } index++; } if (atmark == 0) { /* 終了条件を満たしていないので結果を表示する */ str[index] = '\0'; /* ASCII Z 文字列にする */ printf("入力された文字列:%s\n", str); } while (input != '\n') { /* 入力バッファをクリアする */ input = getchar(); } } printf("*** プログラムを終了します ***\n"); }