繁体   English   中英

C-char和int之间的acsii转换

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM