我需要一个返回字符的 ASCII 值的函数,包括空格、制表符、换行符等...
类似地,在十六进制、十进制和二进制数之间进行转换的函数是什么?
char c;
int ascii = (int) c;
s2.data[j]=(char)count;
char是整数,不需要转换函数。
也许您正在寻找将整数显示为字符串的函数——使用十六进制、二进制或十进制表示?
您不需要函数来获取 ASCII 值——只需通过(隐式)强制转换转换为整数:
int x = 'A'; // x = 65
int y = '\t'; // x = 9
要将数字转换为十六进制或十进制,您可以使用该系列的任何成员printf
:
char buffer[32]; // make sure this is big enough!
sprintf(buffer, "%d", 12345); // decimal: buffer is assigned "12345"
sprintf(buffer, "%x", 12345); // hex: buffer is assigned "3039"
没有内置函数可以转换为二进制;你必须自己动手。
如果要在代码中获取字符的 ASCII 值,只需将字符放在引号中即可
char c = 'a';
您可能会将内部表示与输出混淆。要查看一个角色的价值:
char c = 'A';
cout << c << " has code " << int(c) << endl;
同样的十六进制值 - 所有数字都是十六进制数字,所以这只是一个输出问题:
int n = 42;
cout << n << " in hex is " << hex << n << endl;
输出语句中的“hex”是一个 C++ 操纵器。有用于十六进制和十进制 (dec) 的操纵器,但不幸的是没有用于二进制的操纵器。
至于十六进制和二进制 - 这些只是整数的表示。您可能想要的是 printf("%d",n) 和 printf("%x",n) - 第一个打印十进制,第二个打印相同数字的十六进制版本。澄清你正在尝试做的事情 -