首页 > 解决方案 > 程序计算用户输入的字符数组中有多少可打印字符

问题描述

我得到错误的结果。我不确定是什么导致了问题。任务是计算用户输入给定的字符数组中可打印字符的数量。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;

标签: c

解决方案


你的代码:

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++;
}

推荐阅读