这个标题几乎总结了它。我想在C ++中使用类似asc(“0”)的东西,并希望使程序平台独立,所以不要使用48!任何帮助表示赞赏。
答案 0 :(得分:9)
您可以简单地使用单引号使字符保持不变:
char c = 'a';
字符类型 是一种数字类型,因此不需要asc
和chr
等价物。
这是一个打印出字符串字符值的小例子:
#include <stdio.h>
int main(int argc, char **argv) {
char str[] ="Hello, World!";
printf("string = \"%s\"\n", str);
printf("chars = ");
for (int i=0; str[i] != 0; i++)
printf("%d ", str[i]);
printf("\n");
return 0;
}
输出结果为:
string = "Hello, World!"
chars = 72 101 108 108 111 44 32 87 111 114 108 100 33
答案 1 :(得分:3)
在C和C ++中,如果使用''
而不是""
括起来的字符,则表示您已经处理了原始二进制值。
现在,在C和C ++中,"0"
是一个文字的双字节以空字符结尾的字符串:'0'
和'\0'
。 (ascii 48 ascii 0)
您可以在“”以null结尾的字符串上使用var[0]
或使用其中一个转换例程来实现您想要的效果。 (C中的atoi()
,C ++中的stringstream
lib)
答案 2 :(得分:0)
您将通过写入:'0'获得0字符的ASCII值 对于您需要的每个字符,同样为“char”。