【发布时间】:2020-12-02 04:01:02
【问题描述】:
对这里的编码很陌生。我们正在使用 isalpha 函数,但我无法将它与字符串一起使用。我的程序将提示用户输入一个单词,然后该函数将检查该单词是否包含任何特殊字符。基本上,如果它们都是特殊字符,我的代码只会说有一个特殊字符,而不是只有几个。我假设这与我的 for 循环有关,但我不知道如何让它工作。我搜索了很多,在 C++ 中找不到太多帮助。
这是我的功能。任何帮助表示赞赏。
//*****IsAlphaStr*****
//This function returns true if the cString passed contains all alphabetic characters.
//If the parameter does not contain all alpha characters, a value of false is returned.
bool IsAlphaStr(char wordcheck[25], bool alphabetic)
{
int i = 0;
int n = 0;
for (int i = 0, n = strlen(wordcheck); i < n; i++)
{
if (isalpha(wordcheck[i]) == 0)
alphabetic = false;
else
alphabetic = true;
}
return alphabetic;
}
【问题讨论】:
-
我搜索了很多,在 C++ 中找不到 mych 帮助。 -- std::all_of。无需编写循环。
-
提示:想想第二次循环会发生什么。无论如何(真或假),您都将为
alphabetic分配一个值。这意味着您将覆盖循环的第一次迭代中发生的任何事情......这意味着第一个字符对最终结果没有影响。您的代码实际上只说有一个特殊字符,如果它是 last 字符。 -
提示——为什么你知道字符串中有一个非字母字符时还要继续循环?
-
提示:
std::string并强烈避免使用固定长度的字符缓冲区,尤其是作为参数。 -
我们以前从未使用过它,我正在研究的章节是关于数组和 cStrings,我很确定我们应该使用循环来遍历数组中的每个字符。