4

好吧,标题几乎总结了它。我想在 C++ 中使用 asc("0") 之类的东西,并且想让程序平台独立,所以不想使用 48!任何帮助表示赞赏。

4

3 回答 3

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 
于 2011-06-19T21:11:02.037 回答
3

''在 C 和 C++ 中,如果您使用由而不是包围的字符,""则意味着您已经在处理其原始二进制值。

现在,在 C 和 C++ 中,"0"是一个字面量的两字节空终止字符串:'0''\0'. (ASCII 48 ASCII 0)

var[0]您可以通过在“”空终止字符串上使用或使用转换例程之一来实现您想要的。(atoi()在 C 中,stringstream在 C++ 中的库)

于 2011-06-19T21:12:07.903 回答
0

您将通过写入:'0' 获得 0 字符的 ASCII 值。
同样,您需要的每个 char 都使用 'char'。

于 2011-06-19T21:13:03.160 回答