我已经开始学习C++,并且正在通过C++入门+的一些练习。
在第五章中,其中一项练习是:
编写了一个程序,该程序使用一个字符数组和一个循环一次读取一个单词,直到输入该单词为止。然后,程序应该报告输入的字数(不包括已完成的字数)。示例运行可能如下所示:
输入单词(要停止,键入单词完成):食蚁兽生日类别,垃圾箱,嫉妒猎犬几何学做,以确保你输入了总共7个单词。
您应该包含cstring头文件并使用strcmp()函数进行比较测试。
很难弄明白这点。如果我可以使用if语句和逻辑运算符,就会容易得多,但我仅限于使用:
不允许分支状态(如,case/switch )和逻辑运算符。
有谁能给我暗示把我推向正确的方向吗?
编辑:澄清。输入必须是一个字符串。所以,一个输入需要几个单词。
发布于 2010-08-31 06:03:05
编辑: oops,spec说要读取到char…数组中我不会费心编辑的,这太蠢了。std::string
也包含一个char数组!
cin.exceptions( ios::badbit ); // avoid using if or && to check error state
int n;
string word;
for ( n = 0; cin >> word, strcmp( word.c_str(), "done" ) != 0; ++ n ) ;
我更喜欢
string word;
int n;
for ( n = 0; cin && ( cin >> word, word != "done" ); ++n ) ;
发布于 2010-08-31 05:50:30
使用这个伪代码:
while (input != done)
do things
end-while
发布于 2010-08-31 05:49:50
提示:循环也可以作为条件.
https://stackoverflow.com/questions/3606319
复制相似问题