这是一个C语言的识别字符的程序
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()

{ char c;

int digit=0,block=0,others=0,letters=0;
printf("请输入长度小于100的字符");
while(c=getchar()!='\n')
{if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
letters++;
  else if((c-'0')>=0&&(c-'0')<=9)
      digit++;
  else if(c==' ')
      block++;
  else
      others++;

}

printf("%d%d%d%d",letters,digit,block,others);
system("pause");


return 0;
}

我想输入一些字符串,然后产生各个字符类型的个数,但是我写完这个代码后,发现,不管我输入什么字符,都是在others里加个数,非常奇怪

3个回答

这里while(c=getchar()!='\n')判断的时候应该是while((c = getchar()) != '\n'),原因是 ‘=’ 的优先级是最低的,函数执行到这里的时候先执行getchar() != ‘\n’,
时间为真所以 c = true,所以在最后条件判断的时候进到else里,一直是others++;
c中运算符优先级链接:https://blog.csdn.net/ma950924/article/details/81331985

ma950924
永不脱发的皮皮马 回复qq_43412960: 摸摸哒
3 个月之前 回复
qq_43412960
qq_43412960 爱你哦
3 个月之前 回复

一直others++不就说明你输入的字符串不符合你的判断要求,那就是判断的位置出错了,你试试只输入一个英文字母,看看结果是什么,或者只输入一个数字

qq_43412960
qq_43412960 辛苦了
3 个月之前 回复

你好像重复发了。while((c=getchar())!='\n')

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int main()
{ 
    char c='\0';

    int digit=0,block=0,others=0,letters=0;
    printf("请输入长度小于100的字符\n");
    while((c=getchar())!='\n')
    {
        if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
            letters++;
        else if((c-'0')>=0&&(c-'0')<=9)
            digit++;
        else if(c==' ')
            block++;
        else
            others++;
    }

    printf("%d:%d:%d:%d\n",letters,digit,block,others);
    system("pause");

    return 0;
}
qq_43412960
qq_43412960 辛苦了
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

1
C语言求助:输入一个字符串,将其中的字母字符输入一个链表,将其中的数字字符输入另一个链表。
0
根据存储空间判断这个字符串是否是安全的,运用C语言的程序实现的过程如何做?
0
给定的一个字符串,统计其中数字字符出现的次数,怎么采用C语言来回答这个问题的
0
运用C语言的程序代码,输入三个字符按字符的ASCII码从小到大的顺序输出这三个字符
0
计算残影占用的字符的位置问题,是如何通过运用C语言的程序的代码编写的技术的方式去解决的
0
判断这个字符串是否是安全的,如何采用C语言的程序的设计的代码的形式来实现对于字符串安全的判断
1
C语言中关于字符数组的问题?
3
C语言关于字符的问题?
2
让C语言编译器,输出一个字符串,但是代码出错
0
字符串统计 怎么用C语言
1
Java语言字符串判断是否是回文数的程序,回文数就是颠倒以后和自身相同的
1
Java判断一个字符串里面是否有一个短一些的字符串,用程序具体编写出来
1
这是一个关于编译原理的词法分析程序问题
1
这是一个关于C语言字符数组清空数据的问题
2
关于C语言中的字符串输入问题
3
这是一个关于C语言scanf语句的吃字符问题
1
这是一个关于C语言输出字符串长度的问题
1
这是一个关于C语言字符数组结束符\0的问题
1
这是一个关于C语言字符串初始化的问题和if语句问题
4
这是一个关于C语言的三目运算符问题