茄子爱我 发表于 2021-3-25 15:20:18

作业求助

#include<stdio.h>
#define MAX 1024
int main()
{
        char str1;
        printf("请输入一个字符串:");
        fgets(str1,MAX,stdin);
        char * p=str1;
        float count;
        int i;
        count=0;
        for(i=0;i<MAX;i++)
        {
               
                if(*(p+i)!='\0')
                {
                        if((*(p+i)>=' ')&&(*(p+i)<='~'))
                       
                        count=count+1;
                        else
                        {
                        count=count+1.0/3.0;
                        }
                        }//这里为啥不能这么算,我看了小甲鱼写的答案中文字符不是会被算三次吗???{:10_258:}
                else
                break;
        }
        printf("你总共输入了%f个字符!\n",count);
        return 0;
}

yuxijian2020 发表于 2021-3-25 15:29:27

一般涉及到中文,就会涉及到编码,Unicode, utf-8, GBK
不同的编码中文的存储方式是不同的
utf-8 一个汉字或者中文标点占3个字节
Unicode 一个汉字或者中文标点占2个字节

茄子爱我 发表于 2021-3-26 15:30:53

好的,谢谢
页: [1]
查看完整版本: 作业求助