Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何从输入字符串中获取字符数?_C++_String - Fatal编程技术网

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)
和其他(正确)答案一样。您是否考虑过修复答案中明显不正确的代码?也许是为了礼貌地对待投票的人,而不必费心阅读它。