作业求助
#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;
}
一般涉及到中文,就会涉及到编码,Unicode, utf-8, GBK
不同的编码中文的存储方式是不同的
utf-8 一个汉字或者中文标点占3个字节
Unicode 一个汉字或者中文标点占2个字节 好的,谢谢
页:
[1]