【发布时间】:2022-01-08 03:00:35
【问题描述】:
大家好,我是 C++ 的新手,需要一些帮助。 我正在尝试编写一个仅计算以大写字母开头的单词的程序。
int countLegalWords(char str[])
int counter = 0; // counts the legal words
for (int i = 0; i < MAXSIZE; i++)
{
if (str[i] >= 'A' && str[i] <= 'Z')
{
if (str[i + 1] >= 'a' && str[i + 1] <= 'z')
{
counter++;
}
else if (str[i] == ' ')
i++;
}
}
return counter;
示例:
输入:
我喜欢 我ce Cream H
输出:
4 个单词,单词开头带有大写字母。
【问题讨论】:
-
那么这段代码除了缺少
{和}还有什么问题 -
我不喜欢
MAXSIZE。你怎么知道str[]包含那么多字符? -
无论您使用什么资源来学习 C++,我都认为它做得不是很好。首先,您应该几乎总是使用
std::string来表示字符串。其次,您对大小写字母的检查有缺陷,您应该改用std::isupper和std::islower。 -
str[i + 1]可能是一个错误。而if (str[i] == ' ')永远不会是真的,因为你知道str[i]介于'A' 和'Z' 之间,因为它进入了第一个if () 的上述块 -
您的代码也存在一些逻辑问题。使用 debugger 逐句执行代码,同时监控变量及其值,以帮助您找出问题所在。
标签: c++ visual-c++