係統粉 > 電腦問答 > 其他問答

已解決字符數組的起始位置有空格嗎?

提問者:蘇寒羽徹  |  瀏覽次  |  提問時間:2017-03-21  |  回答數量:6

字符數組的起始位置有空格嗎? 《C程序設計》教材裏有這樣一個例題(P150): 輸入一行字符,統計其中有多少個單詞,單詞之間用空格分隔開。   下麵是書中的程序: #include <stdio.h> void main() { char string[81]; int i,num=0,word=0; [s:458]  char c; gets(string); for (i=0;(c=string) != &#39;\\0&#39;;i++) { if (c == &#39; &#39;) word=0; else if (word == 0) { word=1; num++; } } printf(\"There are %d words in the line.\\n\",num); }   下麵是我自己改的程序: #include <stdio.h> void main() { char string[81]; int i,num=1; char c; gets(string); for (i=0;(c=string) != &

已有6條答案
瘋子小妞丶

瘋子小妞丶

回答數:157  |  被采納數:29

你試試開頭兩個空格單詞之間三個空格看結果對不對
2017-03-21 10:17:57
讚 15
無賴腦殘患者

無賴腦殘患者

回答數:215  |  被采納數:83

我天那!!
  多出那多!!!

  這應該是變量word作為判別標誌的作用吧??!!!
2017-03-21 09:46:59
讚 21
好人一生貧乳

好人一生貧乳

回答數:68  |  被采納數:43

用了判別標誌,程序累加時是從單詞的起始字符開始計算的。
  而像我那樣的,隻是看一行字符中有多少個空格,當然不如看單詞的開頭準確了。

那麼,另外一個問題呢?
1.教材的程序,一行字符的開頭不統計空格;而我這個程序,因為是num初始化為1,是不是應該算作沒有統計開頭的空格呢??
  字符開頭的空格怎麼算呢??
  比如程序運行後,我輸入“I am a boy.”:兩個程序都得4啊??
2017-03-21 12:32:44
讚 6
い花樣年華

い花樣年華

回答數:129  |  被采納數:113

程序可以有多種算法,多次測試都正確就沒問題
2017-03-21 12:39:11
讚 12
偉偉ohoh

偉偉ohoh

回答數:57  |  被采納數:18

想了這麼久,總算明白了!
  教材原題中,“word”的初值即為0,因此,字符串開頭的空格無論統計與否,都會在讀取下一個空格前讀取“else if”分支中的“num++”……
  丫的,又被譚浩強給忽悠了!
  教材裏先是在起始陳述“一行開頭的空格不統計在內”,後在表現程序運行思路的表格裏算上首單詞前的空格……這不是自相矛盾嗎?!
  怪不得有誇他的書好,有罵他的爛了!

  我已經至少被忽悠三次了!!
2017-03-21 23:42:50
讚 5
mmmm咪小蛋丶

mmmm咪小蛋丶

回答數:133  |  被采納數:116

用檢索字符串,要加入string.h頭文件
2017-03-21 23:34:35
讚 13
相關問答
最新其他問答
解決方法