C++ 如何从输入字符串中获取字符数?
我试图计算用户提供的字符串中的字符数。我知道我可以使用C++ 如何从输入字符串中获取字符数?,c++,string,C++,String,我试图计算用户提供的字符串中的字符数。我知道我可以使用string::length()和string::size()但是当遇到空格时,计数就会停止。例如,假设用户输入“Bob Builder”,计数应该是10,但我的代码将显示3。另外,我尝试在不使用字符数组的情况下执行此操作。有什么建议吗?解释也会大有帮助 int main() { string Name; cin>>Name; cout << name(Name
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;
}
intmain()
{
字符串名;
cin>>名称;
你怎么知道输入什么时候结束?
如果您想一直读到行尾,那么这是一个可能的解决方案:
std::string line ;
std::cin.getline(line) ;
line.length() ;
您必须使用而不是cin
将所有行更新到换行符。cin
读取的输入最大为空白
std::getline (std::cin,Name);
如果使用名称空间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;
}
#包括
#包括
int main()
{
std::string s=“你好,世界!”;
std::cout此代码无法编译。std::cin.getline()
只接受一个char*
。您的意思是std::getline(std::cin,line)
和其他(正确)答案一样。您是否考虑过修复答案中明显不正确的代码?也许是为了礼貌地对待投票的人,而不必费心阅读它。