【发布时间】:2020-12-05 12:14:06
【问题描述】:
我正在尝试构建一个简单的程序来计算用户输入中的字母数量。我的想法是使用for 循环,该循环将为字符串中的每个字母循环,增加一个计数器,并在最后返回最终的计数器总数。但是,我不希望程序计算空格——我试图使用isalpha 函数来执行此操作——但我似乎格式不正确。此外,我尝试使计数器不为空格增加的方式是使用c = c,但是,这似乎也是不正确的。这是我目前写的代码:
int c = 0;
int main(void)
{
string s = get_string("Input: ");
printf("Output: ");
for (int i = 0; i < strlen(s); i++)
{
if( s[i] (isalpha))
{
c++;
}
else
{
c = c;
}
}
printf("%i\n", c);
}
【问题讨论】:
-
提问时,请添加minimal reproducible example。这意味着您应该包含重现问题的完整源代码。您的代码使用
string,它不是标准的 C 标识符。很可能,您正在学习哈佛的 CS50 课程,而您的实际文本包含类似#include "cs50.h"的行。您应该在问题中提供的源代码中显示这一点。 -
永远不要将问题描述为“但我的格式似乎不正确”。说明您观察到的错误消息或不良行为。说明你想要什么行为。说明你做了什么会导致不良行为。那可能是“我编译了这里显示的源代码,结果是编译器打印了一条消息“xyz”,但我希望程序编译没有错误。”
-
@EricPostpischil 感谢您的建议,今后我将确保遵循这些准则。