这段代码应该怎么改
本帖最后由 lpx9393 于 2020-2-15 08:24 编辑#include <stdio.h>
int main()
{
char str[] = "中";
int length, i;
length = sizeof(str) / sizeof(str);
printf("length of str: %d\n", length);
for (i = 0; i < length; i++)
{
printf("str[%d] = %d\n", i, str);
}
return 0;
}这段代码小甲鱼老师输出的字符是占四个字节,而我是显示三个字节?这是什么原因?#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 - 1);
return 0;
}而这段代码,小甲鱼老师输出正常,而我不正常输出,请问我应该怎么改?谢谢!
请输入一个字符串:早上好晚上好再见
您总共输入了 5 个字符!
--------------------------------
Process exited after 20.98 seconds with return value 0
请按任意键继续. . .
上面是我的输出结果
希望各位老师详细解答下啊!!!我好懵
谢谢各位老师帮助我!!!
不同的编码自然得到不同的结果
ansi utf-8 .....
不同的编译器使用的编码格式也不一样。 ba21 发表于 2020-2-14 23:09
不同的编码自然得到不同的结果
ansi utf-8 .....
不同的编译器使用的编码格式也不一样。
那应该怎么改才能正确 lpx9393 发表于 2020-2-14 23:14
那应该怎么改才能正确
我看你是没有看明白吧。
你用老师一样的环境不就一样了。
页:
[1]