HaibaraA1 发表于 2021-2-11 14:22:27

求解程序原理

本帖最后由 HaibaraA1 于 2021-2-11 17:37 编辑

#include<stdio.h>
int main()
{
        char str;
        char *p=str;
        printf("为str输入一个字符串:");
        fgets(str,100,stdin);
        int count=0;
        int i=0;
        while(1)
        {
       if(*(p+i)=='\n')
       {
               break;
       }
       count++;
       i++;
        }
        printf("你一共输入了%d个字符!", count);
        return 0;
}
在我电脑,中文字符是占3个字节的储存空间的,为什么我输入“中”这个字,或者别的字,运行结果显示输入了两个字符呢?

wp231957 发表于 2021-2-11 15:08:25

这取决于编译工具,比如,一个汉字正常是占两个字节位,但是有些语言则认为一个汉字占位1个位

风过无痕1989 发表于 2021-2-11 16:40:33

大多数编译器,每个中文字符占两个英文字符空间,下图是 VS2015 输出 “学习编程”,计为8个字符。计为三个英文字符空间的,应该是输入单个汉字的时候,将最后的结束符也计为了一个字符

HaibaraA1 发表于 2021-2-11 17:37:08

okok
页: [1]
查看完整版本: 求解程序原理