C++ 我想计算两个单词之间的空格或间隙?
这是我的代码,我只得到零,请帮助我理解为什么C++ 我想计算两个单词之间的空格或间隙?,c++,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' )
#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;
}
#包括
使用名称空间std;
int main()
{
字符串a=“”;
cin>>a;
int m=a.length(),count=0;
对于(int i=0;i当您阅读带有>
的字符串时,它会读取空格分隔的单词。简而言之,您不能使用它来阅读多单词句子。我建议您改为使用。如果您输入错误,请尝试此操作以获取输入(其中当然会包含空格)
std::getline(std::cin,a)
代码的其他部分工作正常。根据当您使用>
接受输入时,它将跳过任何前导空格
因此,在单词之前键入的任何空格都会丢失,并且不会放在字符串中
尝试:
您对a
的输入是什么?std::isspace
可能会有帮助,而不是检查每个可能的空白字符。cin>>a
只会得到一个单词,而不是整个字符串。查看如何从用户处获得整个字符串(getline()
)结尾的rant减1。格式选项的存在是有原因的。你需要提供更多的细节。
std::getline(std::cin, a); // reads in spaces too