演習1-22 K&R プログラミング言語C
2009年12月09日
演習1-22
スペースか改行文字が現われる毎に word
バッファに保存している文字列を出力する。
出力の際に最大桁数を超えるかどうかのチェックを行う。
1単語の長さが最大桁数を超える場合は別に処理を行なっている。
長さが見やすいように最初に20個の数字を出力している。
#include <stdio.h> #define MAXLENGTH 20 #define WORD_SIZE 1024 int main(int argc, char *argv[]) { int c, i, j, len, n; char word[WORD_SIZE]; printf("12345678901234567890\n"); n = MAXLENGTH; i = len = 0; while ((c = getchar()) != EOF) { ++i; word[len] = c; ++len; if (c == ' ' || c == '\n') { word[len] = '\0'; if (i > n) { putchar('\n'); i = len; } if (len < n) { printf("%s", word); } else { for (j = 0; j < len; j++) { if (j > 0 && ((j % n) == 0)) { putchar('-'); putchar('\n'); } putchar(word[j]); } } len = 0; if (c == '\n') { i = len; } } } return 0; }
実行結果
$ cat long.txt That is the mountain which height is 300m. This is a pen which color is red. That is a big mountain which height is 300m. The Looooooooooooooooooooooooooooooooooong text. The Looooooooooooooooooooooooooooooooooong text. The Loooooooooooooooooooooooooooooooooooooooooooooooooooooong text. The Loooooooooooooooooooooooooooooooooooooooooooooooooooooong text. $ ./ex1-22 <long.txt 12345678901234567890 That is the mountain which height is 300m. This is a pen which color is red. That is a big mountain which height is 300m. The Looooooooooooooooooo- oooooooooooooooong text. The Looooooooooooooooooo- oooooooooooooooong text. The Looooooooooooooooooo- oooooooooooooooooooo- ooooooooooooooong text. The Looooooooooooooooooo- oooooooooooooooooooo- ooooooooooooooong text.
プログラミング言語C 第2版 ANSI規格準拠
posted with amazlet at 09.11.27
B.W. カーニハン D.M. リッチー
共立出版
売り上げランキング: 9726
共立出版
売り上げランキング: 9726