上面的結果胃65
int aaa= 65;
nsstring *string = [nsstring stringwithformat:@"%c",
aaa]; // a
不過,中文就另當別論了。
再使用中文測試一下,使用[nsstring stringwithformat:@"%c", asciicode]得到的是亂碼字元,就是說根本沒識別正確。
再說解決方法之前,先了解一下stringwithformat方法中各種format。其中將ascii碼轉成字元有兩種format,分別為%c和%c。
/* %c
8-bit unsigned character (unsigned char), printed by nslog() as an ascii character, or, if not an ascii character, in the octal format \\ddd or the unicode hexadecimal format \\udddd, where d is a digit.
%c 16-bit unicode character (unichar), printed by nslog() as an ascii character, or, if not an ascii character, in the octal format \\ddd or the unicode hexadecimal format \\udddd, where d is a digit.
*/ 使用[nsstring stringwithformat:@"%c", asciicode]就可以正常得到所要的字元。
分別以英文,中文和日文舉例。
nsstring *thestring = @"g";
unichar thechar = [thestring characteratindex:0];
nsstring *thestring1 = [nsstring stringwithformat:@"%c", thechar];
nsstring *thestring2 = [nsstring stringwithformat:@"%c", thechar];
nslog(@"thestring=%@,%d,%@,%@",thestring,thechar,thestring1,thestring2);
thestring = @"家";
thechar = [thestring characteratindex:0];
thestring1 = [nsstring stringwithformat:@"%c", thechar];
thestring2 = [nsstring stringwithformat:@"%c", thechar];
nslog(@"thestring=%@,%d,%@,%@",thestring,thechar,thestring1,thestring2);
thestring = @"カントリー";
thechar = [thestring characteratindex:2];
thestring1 = [nsstring stringwithformat:@"%c", thechar];
thestring2 = [nsstring stringwithformat:@"%c", thechar];
nslog(@"thestring=%@,%d,%@,%@",thestring,thechar,thestring1,thestring2);
2013-09-12 15:36:27.849 xyshopping[1892:18e03] thestring=g,103,g,g
2013-09-12 15:36:27.849 xyshopping[1892:18e03] thestring=家,23478,?,家
2013-09-12 15:36:27.849 xyshopping[1892:18e03] thestring=カントリー,12488,?,ト
顯示結果表明,這個方法是正確的。對於兩個位元組組成的字元,是能顯示出的。不知道其他語言會怎麼樣,沒有條件去測試。
數字字元與數字之間的相互轉化
1 首先數字字元轉化為數字並按原順序輸出 數字字元與數字之間轉化 用到 str i 0 轉化為乙個整體數字需要用到迴圈 result 10 c 2數字轉化為數字字元按原順序輸出 因為需要按照原順序 所以需要多加乙個迴圈 根據迴圈的位置有兩種方法 第一種 先把數字逆序 用到乙個求餘迴圈 result ...
數字與字串相互轉化 Unicode
vc中數字與字串轉換方法 1,char是最原始的字元資料型別,在非unicode版本的arx中使用 2,wchar t是寬位元組字元型別,在unicode版本中的arx中使用 3,t 是乙個巨集,可以將裡面的字串轉化成所在工程環境中的字元型別 4,tchar是unicode的一種,等同於 t 這個巨...
time t與string相互轉化
方法1,systemtime 型別 指定time t型別的時間,格式化為yyyymmddhh24miss型的字串 void formattime systemtime tm1 指定yyyymmddhh24miss型的時間,格式化為time t型的時間 systemtime formattime2 t...