C / C ++中的asc和chr等价物

时间:2011-06-19 21:08:50

标签: c++ c chr

这个标题几乎总结了它。我想在C ++中使用类似asc(“0”)的东西,并希望使程序平台独立,所以不要使用48!任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:9)

您可以简单地使用单引号使字符保持不变:

char c = 'a';

字符类型 是一种数字类型,因此不需要ascchr等价物。

这是一个打印出字符串字符值的小例子:

#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”。