当前位置:系统粉 > 电脑问答 > 其他问答 > 字符数组的起始位置有空格吗?

字符数组的起始位置有空格吗?

提问者:苏寒羽彻  |  浏览 次  |  提问时间: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

2017-03-21 09:46:59
我天那!!
  多出那多!!!

  这应该是变量word作为判别标志的作用吧??!!!
赞 21
好人一生贫乳

好人一生贫乳

回答数:68  |  被采纳数:43

2017-03-21 12:32:44
用了判别标志,程序累加时是从单词的起始字符开始计算的。
  而像我那样的,只是看一行字符中有多少个空格,当然不如看单词的开头准确了。

那么,另外一个问题呢?
1.教材的程序,一行字符的开头不统计空格;而我这个程序,因为是num初始化为1,是不是应该算作没有统计开头的空格呢??
  字符开头的空格怎么算呢??
  比如程序运行后,我输入“I am a boy.”:两个程序都得4啊??
赞 6
い花样年华

い花样年华

回答数:129  |  被采纳数:113

2017-03-21 12:39:11
程序可以有多种算法,多次测试都正确就没问题
赞 12
伟伟ohoh

伟伟ohoh

回答数:57  |  被采纳数:18

2017-03-21 23:42:50
想了这么久,总算明白了!
  教材原题中,“word”的初值即为0,因此,字符串开头的空格无论统计与否,都会在读取下一个空格前读取“else if”分支中的“num++”……
  丫的,又被谭浩强给忽悠了!
  教材里先是在起始陈述“一行开头的空格不统计在内”,后在表现程序运行思路的表格里算上首单词前的空格……这不是自相矛盾吗?!
  怪不得有夸他的书好,有骂他的烂了!

  我已经至少被忽悠三次了!!
赞 5
mmmm咪小蛋丶

mmmm咪小蛋丶

回答数:133  |  被采纳数:116

2017-03-21 23:34:35
用检索字符串,要加入string.h头文件
赞 13
解决方法
版权信息

Copyright @ 2011 系统粉 版权声明 最新发布内容 网站导航