2017-11-25 72 views
-2

我正在尝试做这个练习;如何让我的循环搜索空白?

编写一个程序,它使用一个字符数组和一个循环来一次读取一个字 ,直到输入完成字。然后该程序应该报告输入的字数(不计算完成) 。样品运行 看起来是这样的:

输入字词(停止,键入完成这个词):食蚁兽生日 分类垃圾箱羡慕欺骗几何肯定 做你一共有7个 输入的单词。

您应该包含cstring头文件并使用strcmp() 函数进行比较测试。

现在,我在谷歌搜索它,每个人都喜欢它;在每个单词之后按回车键,当写完“完成”后最终进入时,循环停止。

现在,我知道该怎么做。

我想做什么(以及我认为运动实际需要的)是为用户输入一个带有多个单词的单个字符串(例如:“铅笔冬天长句当旧电影现在完成时不会说话发生“),然后程序应该将空格前面的每个单词(”“字符)计为一个不同的单词,找出”完成“的位置,然后统计每个单词。

+0

'std :: string :: find'可能会有所帮助。 –

回答

0

http://www.cplusplus.com/reference/string/string/getline/ 将会读取一行,直到按下回车键。您可以在空格字符''(32 ascii)之间划分一部分字符串。 计数的话,这将工作,其中输入字符串:

getline(std::cin, input); 
int words = 0; 
for (int c = 0; c < input.size(); c++) { 
    while (input[c] != ' ' && c < input.size()) { 
     c++; 
    } 
    words++; 

} 

另一种方式来做到这一点是这样的: http://www.cplusplus.com/reference/cstring/strcmp/

while(strcmp(tmp.c_str(),"done") != 0){ 
     std::cin>> tmp; 
     words++; 
    } 

CIN自然停止在每一空间记录字符串