Well the title pretty much sums it up. I want to use something like asc("0") in C++, and want to make the program platform independent so don't want to use 48! Any help appreciated.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
You can simply use single-quotes to make a character constant:
char c = 'a';
The character type is a numeric type, so there is no real need for asc
and chr
equivalents.
Here's a small example that prints out the character values of a string:
#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;
}
The output is:
string = "Hello, World!"
chars = 72 101 108 108 111 44 32 87 111 114 108 100 33
回答2:
In C and C++, if you use a character enclosed by ''
and not ""
it means you are dealing with its raw binary value already.
Now, in C and C++, "0"
is a literal two byte null-terminated string: '0'
and '\0'
. (ascii 48 ascii 0)
You can achieve what you want by using var[0]
on a "" null-terminated string or use one of the conversion routines. (atoi()
in C, stringstream
lib in C++)
回答3:
You will get the ASCII value of a 0 character by writing: '0'.
Likewise 'char' for every char you need.