如何将int转换为char并将char转换为int?
例如12345 == abcde
现在我使用了大量的case语句,想知道是否有更聪明的方法吗?
谢谢,
三通
答案 0 :(得分:7)
我建议使用ASCII值并仅使用类型转换。
在大多数情况下,最好只使用ASCII值来编码字母;但是如果你想用1 2 3 4代表'a''b''c''d'那么你可以使用以下内容。
例如,如果您想将字母1转换为'a',则可以执行以下操作:
char letter = (char) 1 + 96;
ASCII中的对应于字符“a”。同样,您可以将字符“a”转换为整数1,如下所示
int num = (int) 'a' - 96;
当然,使用ASCII值更容易开始,并避免添加或减少,如上所示。 :-D
答案 1 :(得分:0)
如果您只想映射'a' - > 1,'b' - > 2,...,'我' - > 9,你应该简单地做到以下几点:
int convert(char* s)
{
if (!s) return -1; // error
int result = 0;
while (*s)
{
int digit = *s - 'a' + 1;
if (digit < 1 || digit > 9)
return -1; // error
result = 10 * result + digit;
}
return result;
}
但是,你仍然应该关心0(你希望将哪个字母映射到0?)和溢出(我的代码不会检查它)。
答案 2 :(得分:0)
unsigned char encryPt[1];
encryPt[0] = (char)1;