why5188 发表于 2020-8-18 23:08:03

数字符数量这个课程,我有话要说


#include <stdio.h>

main ()

{
        int count= 0;

        printf("请输入字符:");
        while (getchar () != '\n')
        {
        count = count+1;
        }
printf("字符长度是:%d\n",count);
return 0;
}

上面是老大课程里的内容,没出错,字符数量输出正确。
这个程序为什么不用带char 字符变量?不用scanf来记录输入的字符?
下面是我自己加上以后的结果,运算结果少一个字符数,请大神指出我的错误
#include <stdio.h>

main ()

{
        int count= 0;
        char zifu;
        printf("请输入字符:");
        scanf("%c",&zifu);
        while (getchar () != '\n')
        {
        count = count+1;
        }
printf("字符长度是:%d\n",count);
return 0;
}

sunrise085 发表于 2020-8-18 23:24:02

这个程序为什么不用带char 字符变量?
不知道你说的是什么。。什么叫带char的字符变量?
运算结果少一个字符数,
少一个字符,是因为你在while循环之前用scanf读取了一个字符,所以统计的时候就少了一个字符呗。

why5188 发表于 2020-8-19 18:50:37

sunrise085 发表于 2020-8-18 23:24
不知道你说的是什么。。什么叫带char的字符变量?

少一个字符,是因为你在while循环之前用scanf读取了 ...

我的意思是我们输入了一串字母,这一串字母不用定义一个变量来存放么?字符串用的变量不就是 char变量么?

sunrise085 发表于 2020-8-19 22:32:45

why5188 发表于 2020-8-19 18:50
我的意思是我们输入了一串字母,这一串字母不用定义一个变量来存放么?字符串用的变量不就是 char变量么 ...

你的基础还很薄弱啊
char是字符型变量,不是字符串变量,大小是一个字节,只能存储一个字符

这个程序只是统计你输入的字符的个数,所以不需要保存输入的字符内容,直接用循环统计即可,循环一次说明输入了一个字符,计数器count+1,一旦退出循环,说明输入结束。统计出来的就是输入的字符个数。
页: [1]
查看完整版本: 数字符数量这个课程,我有话要说