c - 程序计算用户输入的字符数组中有多少可打印字符
问题描述
我得到错误的结果。我不确定是什么导致了问题。任务是计算用户输入给定的字符数组中可打印字符的数量。r
无论给出什么输入,输出总是等于 0(零)。
printf("Geben sie bitte einen Zeichenkette ein \n");
fgets(s1, sizeof(s1), stdin);
int r=0;
int size = sizeof(s1)/sizeof(s1[0]);
for (i=0;i<=size;i++){
char a=s1[i];
int h = (int)a;
if (isprint(h)==1){
r=r++;
}
}
printf("%d\n",r);
return 0;
解决方案
你的代码:
if (isprint(h)==1){ // Why compare against 1? What does that do?
r=r++; // Do you know how ++ works?? Read about it.
}
固定版本
if (isprint(h)) {
r++;
}
推荐阅读
- java - 为什么我的 gradle 任务在没有依赖关系的情况下被调用?
- java - Java 方法引用实例化
- grails - Grails v3.3.9 GORM 缺陷 - 一对多与mappedBy,更新可能失败
- ios - 来自 HTML 5 网络播放器的 iOS 12 锁屏下一首歌曲
- c# - 返回泛型类型时出错(无隐式转换)
- regex - grep - q "$1[^_-]"
- excel - 如何修复#Value!我的 Excel 代码中的错误
- selenium - Chrome 72 现在在脚本完成后自动关闭
- php - 在 foreach 循环之前使用 array_splice
- java - AspectJ - 包中所有类的切入点,除了一个