我正在尝试计算用户提供的字符串中的字符数。我知道我可以使用string::length()
,string::size()
但是当遇到空格时,计数停止。例如,假设用户输入“ Bob Builder”,则计数应为10,但我的代码将显示为3。此外,我尝试不使用字符数组来执行此操作。有什么建议?一个解释也将大有帮助。
int main()
{
string Name;
cin>>Name;
cout << name(Name);
return 0;
}
int name(string a)
{
int numChar;
/*for (int i=0; a[i] != '\0';i++)
{
if (!isspace(a[i]))
numChar++;
}*/
numChar=a.length();
return numChar;
}
您必须使用getline()
而不是cin
使所有行都换行。cin
读取输入直到空格。
std::getline (std::cin,Name);
如果您使用 using namespace std;
getline (cin,Name);
如果要计算输入字符串(不包括空格),代码段将为您提供帮助。
#include <algorithm>
#include <string>
int main()
{
std::string s = "Hello there, world!";
std::cout << std::count( s.begin(), s.end(), ' ' ) << std::endl;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句