确定C ++中字符串中每个单词的字母数量

问题描述 投票:0回答:1

你好,我是C ++和编码的新手,在我的一项作业中遇到了一个问题。我只是在寻找一些输入,并希望能解释为什么我无法正常工作。

我正在尝试从用户那里获取输入,并使用cin.get()函数来计算该字符串中的所有字符。我这样做是因为我想确定字符串中每个单词的字母。现在我的问题是我无法正确打印结果。

我的问题是:为什么当我尝试确定变量chr是否为'\ n'字符时为什么无法得到结果? Chr是保存由cin.get()函数读取的当前字符的值的变量)是'\n'。当countWordsByLegth()的当前值为chr或换句话说字符串的结尾时,我希望能够更新我的函数'\n'的参数(word1,word2 .....)。

例如,以下代码将不会运行,这是我知道如何为不包含空格的字符串(一个单词字符串)更新参数的唯一方法:

if (counter == 5 && chr == '\n')
{
    ++word5;
    counter =0;
}

这是我的代码供参考。函数isWhitespace()仅确定字符是否为以下'\n''\r''\t'之一):

while (cin.get(chr) && chr != '\n')
{
    counter++;
    if (isWhitespace(chr))
        {   
            --counter;
            //test = true;
        }
                if (counter == 5 && chr == '\n')
                {
                    ++word5;
                    counter =0;
                }
                if (counter == 4 && chr =='\n')
                {
                    ++word4;
                    counter =0;
                }
                if (counter == 3 && chr =='\n')
                {
                    ++word3;
                    counter =0;
                }
                if (counter == 2 && chr == '\n')
                {
                    ++word2;
                    counter =0;
                }
                if (counter ==1 && chr == '\n')
                {
                    ++word1;
                    counter =0;
                }
        cout << counter << endl; // Test code {delete later}
}
cout << "This is the total of word5: " << word5 << endl;

}

你好,我是C ++和编码的新手,在我的一项作业中遇到了一个问题。我只是在寻找一些输入,希望能解释为什么我无法正常工作。我正在尝试...

c++ algorithm c++17 cin
1个回答
0
投票

您可以使用std::string.length()获取字符串中的字符数。length()函数返回字符串中的字符数。

#include <iostream>
#include <string>

int main()
{
  std::string s;
  s = "test";
  std::cout << "The string has " << s.length() << " letters!";
}
© www.soinside.com 2019 - 2024. All rights reserved.