**已关闭。**此问题不符合Stack Overflow guidelines。它目前不接受回答。
这个问题似乎与help center中定义的范围内的编程无关。
8天前关闭。
Improve this question的
我写这段代码的目的是,让用户打印出给定文本中的字母数,但我的代码没有这样做。我似乎根本不明白出了什么问题。任何帮助/建议将不胜感激。我的代码也编译,但它不会做什么,我希望它。我看了一些例子,但没有找到答案。
#include <cs50.h>
#include <ctype.h>
#include <stdio.h>
#include <string.h>
int count_letters(string text);
int main(void)
{
string text = get_string("Text: ");
int input = count_letters(text);
}
int count_letters(string text)
{
int letters = 0;
for (int i = 0; i < strlen(text); i++)
{
if(isalpha(text[i]))
{
letters++;
}
}
return letters;
printf("Letters %i\n", letters);
}
字符串
代码的输出是空的。只是转到下一行在终端窗口中写入一些内容。
1条答案
按热度按时间rdlzhqv91#
做着和你一样的事情。我也遇到了类似的问题,通过使用isalpha解决了这个问题。但我没有。让我对if语句很头疼。但我想我也许能帮上忙。不过,别以为我的回答没什么好的。只是想帮忙。
字符串
出现问题的第一个原因是你要求函数返回字母。函数返回
variable letters
。这就是integer
。使最后一行printf无用(您可以删除它)。但在主:型
您正在将
int input
分配给count_letters function
的输出。好吧,如果你要打印输入,你会得到你所要求的字母数。但我认为你在count_letters函数中混淆了。在函数内部打印它不会返回那个值。它会返回你所要求的,变量letters
。所以两个解之一是型
修改你的返回函数以正确地返回printf函数。然后将其称为main为
count_letters(text);
,因为它已经打印了结果。另一个选项是删除这一行printf,只留下返回字母;
型
但是,您必须使用printf在
main
中将其打印出来。型
希望这有帮助!也不要太苛刻,这是我第一次在这里发表文章。:)