我想计算两个单词之间的空格或间隙?

时间:2017-07-18 15:19:16

标签: c++

这是我的代码,我只得到零,请帮我理解原因?

#include<bits/stdc++.h>
using namespace std;

int main()
{

    string a="";
    cin>>a;
    int m=a.length(),count=0;

    for(int i=0;i<m;i++)
    {
        if( a[i] == ' ' || a[i] == '\t' || a[i] == '\n' )
        {
            count++;
        }

    }
    cout<<count;
    return 0;
}

为什么我会得到0?

3 个答案:

答案 0 :(得分:3)

当您使用>>阅读字符串时,它会读取空格 分隔 字词。简而言之,您无法使用它来阅读多字句子。我建议你改用std::getline

答案 1 :(得分:1)

您输入的输入不正确,请尝试输入(包含白色空格)

的std ::函数getline(标准:: CIN,一个);

您的代码的其他部分工作正常。

答案 2 :(得分:1)

根据 The manual ,当您使用>>接受输入时,会跳过任何前导空格。

因此,在单词丢失之前键入的任何空格都不会放在字符串中。

尝试std::getline

std::getline(std::cin, a); // reads in spaces too