按照小甲鱼给的代码在code blokcs编译结果有误
#include <stdio.h>#define MAX 1024
int main()
{
char str;
char *target = str;
char ch;
int length = 0;
printf("请输入一个字符串:");
fgets(str, MAX, stdin);
while (1)
{
ch = *target++;
if (ch == '\0')
{
break;
}
if ((int)ch < 0)
{
target += 2;
}
length++;
}
printf("您总共输入了 %d 个字符!\n", length);
return 0;
}
从输入四个及以上中文字符开始,字符数就与实际输入字符数不一致(输入7个中文字符,输出时给出的是5) 请输入一个字符串:我和我的祖国,一刻也不能分割
您总共输入了 14 个字符!
--------------------------------
Process exited after 21.07 seconds with return value 0
请按任意键继续. . .
#include <stdio.h>
#define MAX 1024
int main()
{
char str;
char *target = str;
char ch;
int length = 0;
printf("请输入一个字符串:");
fgets(str, MAX, stdin);//截至符是 /n
while (1)
{
ch = *target++;
if (ch == '\n')
{
break;
}
if ((int)ch < 0) //判断中文
{
target += 1;
}
length++;
}
printf("您总共输入了 %d 个字符!\n", length);
return 0;
}
页:
[1]