无论输入什么字符o的输出值都只等于0,还怎么解决#include <stdio.h>

l代表字母,s代表空格,d代表数字,o代表其他字符,无论输入什么字符o的输出值都只等于0,还怎么解决


#include<stdio.h>
#include<stdlib.h>
int main()
{
    char c;
    int l = 0, s = 0, d = 0, o = 0;
    printf("请输入字符\n");
    while
        ((c = getchar()) != '\n')
    {
        if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z')
            l++;
        else if (c >= '0' && c <= '9')
            d++;
        else if (c = ' ')
            s++;
        else
            o++;
    }
    printf("l:%d\ns:%d\nd:%d\no:%d\n",l, s, d, o);
    system("pause");
}

改成==试试:


else if (c = ' ')
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7782677
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:c语言标准库详解(二):stdio.h之格式化输出
  • 除此之外, 这篇博客: C语言为什么只需要包含stdio.h就能使用里面声明的函数?中的 不包含可以用吗? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 那么一定要包含才可以使用吗?并非如此。前面说过了,包含不过是使用里面的声明,既然如何,我们自己声明怎么样?看下面的代码:

     
    //hello.c,没有包含stdio.h
    int printf (const char *__restrict __format, ...);
    //extern int printf (const char *__restrict __format, ...);
    int main(void)
    {
        printf("hello,编程珠玑\n");
        return 0 ;
    }

    同样可以好好运行,因为你可以自己声明或者指定为外部声明。不过这样不建议,因为一旦出现自己声明的与实际的不符合,就可能导致意料不到的事情发生。