[英]C - acsii conversion between char and int
我有这个C代码:
#include <stdio.h>
int main()
{
for (char c = "A"; c <= "Z"; c = (char)((int) c + 1))
printf("%c: %d\n", c, (int) c;
}
一个非常简单的程序,可以打印出所有大写字母及其ASCII数字
但是我的结果不是很理想
它实际上打印出来
\: 92
]: 93
^: 94
_: 95
`: 96
a: 97
b: 98
c: 99
d: 100
e: 101
f: 102
g: 103
h: 104
i: 105
j: 106
k: 107
l: 108
m: 109
n: 110
o: 111
p: 112
q: 113
r: 114
s: 115
t: 116
u: 117
v: 118
w: 119
x: 120
y: 121
z: 122
{: 123
|: 124
}: 125
~: 126
: 127
有人可以向我解释一下吗?
我刚开始学习C,却找不到原因。
当您这样做时,您的程序会导致未定义的行为:
char c = "A"; c <= "Z"
请使用单引号。 更正的程序:
#include <stdio.h>
int main()
{
char c = 'A';
for (; c <= 'Z'; c = (char)((int) c + 1))
printf("%c: %d\n", c, (int) c);
}
"A"
和"Z"
是字符串文字。 'A'
和'Z'
是字符文字
您不能使用" "
分配给字符变量。
""
用于分配多个字符。
char c[]="hello world";
其中作为''
被用于单个字符 。
char c='A';
正确的代码应为:
#include <stdio.h>
int main()
{
char c;
for (c = 'A'; c <= 'Z'; c = (char)((int) c + 1))
printf("%c: %d\n", c, (int) c);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.