繁体   English   中英

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

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

我正在尝试计算用户提供的字符串中的字符数。 我知道我可以使用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;
   }

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

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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM