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

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

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

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

我的问题是,当我尝试确定变量chr(这是保存cin.get()函数正在读取的当前字符的值的变量)时为什么不能得到结果的原因? '\ n'。我希望能够在我的[[chr的当前值是'\ n'或换句话说字符串的末尾时更新我的​​函数countWordsByLeght的参数(word1,word2 .....)。

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

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

这是我的参考代码:(is whitespace()只是确定字符是否是这些'\ 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++ 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!"; }

http://www.cplusplus.com/reference/string/string/在这里您可以了解可用于字符串的不同功能。 
© www.soinside.com 2019 - 2024. All rights reserved.