2010-04-07 49 views
2

如何将int转换为字符,并将字符转换为int?Objective-C int转换为字符

e.g 12345 == ABCDE

现在我有使用它一大堆case语句,不知道是否有这样做的一个更聪明的方式?

感谢,
三通

+4

你在问一个很奇怪的转换。例如,应该将“zzz”转换为什么? – Vlad 2010-04-07 08:10:59

+0

耶忘了提,但我只是为0-9看。基本上我正在做一个肮脏的共享功能。数值就是答案,如果我按原样显示,乐趣就消失了。所以只是做一些简单的事情让它不那么明显。谢谢,三通 – teepusink 2010-04-07 08:20:23

回答

7

我会建议使用ASCII值,只是类型转换。

在大多数情况下,最好只使用ASCII值来编码字母;然而,如果你想用1 2 3 4来表示'a''b''c''d',那么你可以使用以下内容。

例如,如果你想信1转换为“A”,你可以这样做:

char letter = (char) 1 + 96; 

为ASCII 97对应于字符“A”。同样可以按如下

int num = (int) 'a' - 96; 

当然这只是更容易使用ASCII值开始与和避免增加或减去如上所示的文字转换“a”到整数1。 :-D

0

如果你只想映射 '一' - > 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的哪个字母?)和溢出(我的代码不检查它)。

0
unsigned char encryPt[1]; 
encryPt[0] = (char)1;