2010-04-07 70 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;