【问题标题】:how to print set of values in like an array? i dont want to print all the values just i want to print no. of letters如何像数组一样打印一组值?我不想打印所有的值,只是我想打印不。字母
【发布时间】:2021-11-29 03:12:55
【问题描述】:

我想打印文本中的字母数。像字母:6,字母:5,如果有 6 个字母,则打印 123456,或者如果有 5 个字母,则打印 12345。我想打印字母:6 或字母:5 之类的字母

这是我的代码

#include <stdio.h>
#include <ctype.h>
#include <cs50.h>
#include <string.h>

int main(void){ int letter=0; int words=0; int sentences=0;

string para =get_string("Text:");

for(int i=0;i<strlen(para);i++){

if((para[i]>='a' || para[i]<='z') && (para[i]>='A' || para[i]<='Z') && (para[i]!=' ')) {
letter++;

    printf("%i",letter);
}
}

//printf("%s",para);

}

这是输出

文本:文本是 123456~/$

【问题讨论】:

  • printf 语句移到for 循环之外。
  • 感谢 q 成功了

标签: arrays c string integer cs50


【解决方案1】:

你的 for 循环中有你的 print 语句,只需将它移到外面,然后在 print 语句中添加你想要的任何内容。您也可以只使用 isalpha() 来检查字符是否为字母。谷歌“C isalpha() 教程点”了解更多详情。

所以从这里开始:

for(int i=0;i<strlen(para);i++){

if((para[i]>='a' || para[i]<='z') && (para[i]>='A' || para[i]<='Z') && (para[i]!=' ')) 
letter++;

    printf("%i",letter);
}

到这里

for(int i=0;i<strlen(para);i++){

if((para[i]>='a' || para[i]<='z') && (para[i]>='A' || para[i]<='Z') && (para[i]!=' ')) 
letter++;

}
printf("Letters: %i",letter);

【讨论】:

  • 您应该改进建议的解决方案中的缩进并(更重要的是)解决缺少右括号的问题 (}) ...我可以看到两个 { 但只有一个 @987654327 @。就目前而言,printf 语句仍在for 循环内。
  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2020-10-04
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
  • 2019-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多