如何从输入字符串中获取字符数

How can I get the number of characters from an input string?

本文关键字:获取 字符 字符串 输入      更新时间:2023-10-16

我正在尝试计算用户提供的字符串中的字符数。我知道我可以使用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] != '';i++)
        {
             if (!isspace(a[i]))
             numChar++;
        }*/
        numChar=a.length();
        return numChar;
   }

您如何知道输入何时结束?如果你想一直读到行尾,那么这是一个可能的解决方案:

std::string line ;
std::cin.getline(line) ;
line.length() ;

您必须使用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;
}