【发布时间】:2018-12-26 09:45:15
【问题描述】:
首先我想看看 C 中的 ASCII 可打印字符是什么样的。
以下是我的代码:
#include <stdio.h>
int main(void)
{
for (char a = 32; a < 127; a++)
printf("a=%c\n", a);
return 0;
}
#include <stdio.h>
int main(void)
{
for (unsigned char a = 32; a < 127; a++)
printf("a=%c\n", a);
return 0;
}
上面的两个代码 sn-ps 工作得很好,告诉我关于 ASCII 可打印字符的信息。
接下来我想看看 C 的扩展 ASCII 字符。
#include <stdio.h>
int main(void)
{
for (unsigned char a = 128; a < 256; a++)
printf("a=%c\n", a);
return 0;
}
然后是未知奇怪字符的无限循环。
我哪里做错了?
我认为当 a 达到 256 时循环会停止,但事实并非如此。
奇怪的字符是从哪里来的?
如何打印 C 的扩展 ASCII 字符?
【问题讨论】:
-
无符号字符的最大值是多少?不是 256。
-
unsigned char a-->unsigned a或int a。 -
无法保证 C 实现/环境完全使用 ASCII。
-
要使字符有意义,您应该记住您正在使用的扩展 ASCII 字符集。 “扩展 ASCII”是某些字符编码的特征,但您一次只能使用一种字符编码..
标签: c loops character ascii extended-ascii