無題
Posted: 2010年11月21日(日) 13:17
1 #include<stdio.h>
2
3 main()
4 {
5 char c='\0';
6 char prevletter;
7 int wordnum;
8 int word_in;
9
10 while(1)
11 {
12 wordnum = 0;
13 word_in = 1;
14 prevletter = '\0';
15 printf("文字列を入力してください:");
16 while(1)
17 {
18 c=getchar();
19 if(c == '\n')
20 {
21 if(word_in)
22 wordnum++;
23 break;
24 }
25 prevletter = c;
26 if(c == ' ' || c == '.')
27 {
28 if(word_in)
29 {
30 wordnum++;
31 word_in=0;
32 }
33 }
34 else
35 word_in=1;
36 }
37 if(prevletter == '\0')
38 break;
39 printf("ワード数:%d\n",wordnum);
40 }
41 }
このようなワードカウンタのサンプルプログラムがありました。
質問その1:10、16行目のwhile(1)は無限ループですよね。
では21、28行目のif(word_in)とはなんですか?
if(条件式)と書いておきながらif(変数)って何を意味してるんですか?
質問その2:26行目のif(c == ' ' || c == '.')はどういう意味ですか?
質問その3:すみませんが分かりやすく解説のコメントをつけていただけると幸いです。
2
3 main()
4 {
5 char c='\0';
6 char prevletter;
7 int wordnum;
8 int word_in;
9
10 while(1)
11 {
12 wordnum = 0;
13 word_in = 1;
14 prevletter = '\0';
15 printf("文字列を入力してください:");
16 while(1)
17 {
18 c=getchar();
19 if(c == '\n')
20 {
21 if(word_in)
22 wordnum++;
23 break;
24 }
25 prevletter = c;
26 if(c == ' ' || c == '.')
27 {
28 if(word_in)
29 {
30 wordnum++;
31 word_in=0;
32 }
33 }
34 else
35 word_in=1;
36 }
37 if(prevletter == '\0')
38 break;
39 printf("ワード数:%d\n",wordnum);
40 }
41 }
このようなワードカウンタのサンプルプログラムがありました。
質問その1:10、16行目のwhile(1)は無限ループですよね。
では21、28行目のif(word_in)とはなんですか?
if(条件式)と書いておきながらif(変数)って何を意味してるんですか?
質問その2:26行目のif(c == ' ' || c == '.')はどういう意味ですか?
質問その3:すみませんが分かりやすく解説のコメントをつけていただけると幸いです。