Objective-C int to char

时间:2010-04-07 08:04:40

标签: objective-c

如何将int转换为char并将char转换为int?

例如12345 == abcde

现在我使用了大量的case语句,想知道是否有更聪明的方法吗?

谢谢,
三通

3 个答案:

答案 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;