如何让我的循环搜索空格?

时间:2017-11-25 21:18:38

标签: c++ string

我试图做这个练习;

  

编写一个使用char数组和循环读取一个单词的程序   在输入单词之前的时间。那么该计划应该   报告输入的字数(不计算完成)。样本运行   可能看起来像这样:

     

输入单词(停止,输入完成的单词):食蚁兽生日类别   垃圾箱羡慕finagle几何完成肯定   你总共输入了7个   词语的

     

你应该包含cstring头文件并使用strcmp()   功能进行比较测试。

现在,我在谷歌搜索它,每个人都喜欢这样做;在每个单词后按Enter键,当你在写完"完成"后最后进入时,循环停止。

现在,我知道该怎么做。

我想做什么(以及我认为练习实际想要的是),为用户输入一个包含多个单词的单个字符串,(例如:"铅笔冬长句在现在完成旧电影时说话)年轻人没有发生")然后程序应该将空格前的每个单词(""字符)作为一个不同的单词计算,找出"完成"是,并在此之前计算每一个字。

1 个答案:

答案 0 :(得分:0)

http://www.cplusplus.com/reference/string/string/getline/ 在按下输入之前会读取一行。您可以在空格字符之间划分字符串的一部分。 '(32 ascii)。 对于单词计数,这将起作用,其中input是一个字符串:

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自然地停止在每个空间录制字符串