當與@"a"
提出,我希望能夠得到它的97如何獲得一個NSString *的ASCII值,指向一個字符?
我認爲這確實是
NSString *c = [[NSString alloc] initWithString:@"a"];
NSLog(@"%d", [c intValue]); // Prints 0, expected 97
ASCII值可是......你猜對了(或者知道:)) .. 它不是。
如何獲取指向單個字符的NSString *的ascii值?
當與@"a"
提出,我希望能夠得到它的97如何獲得一個NSString *的ASCII值,指向一個字符?
我認爲這確實是
NSString *c = [[NSString alloc] initWithString:@"a"];
NSLog(@"%d", [c intValue]); // Prints 0, expected 97
ASCII值可是......你猜對了(或者知道:)) .. 它不是。
如何獲取指向單個字符的NSString *的ascii值?
NSLog(@"%d",[c characterAtIndex:0]);
NSString class reference:接收機的文本的整數值,假設十進制表示,並在字符串的開頭跳過空格。在溢出時返回INT_MAX或INT_MIN。 如果接收方不以數字的有效小數文本表示開頭,則返回0。
所以它返回0是因爲你在一個數字的無效十進制文本表示上調用了intValue。
NSString *str = @"a";
unichar chr = [str characterAtIndex:0];
NSLog(@"ascii value %d", chr);
爲什麼你的方法不起作用是因爲你在STRING上操作還記得嗎?不是一個字符。它仍然是一個NSString。
請注意,「ascii」在這裏有點用詞不當,因爲NSString可以保存unicode字符。不要認爲'[str characterAtIndex:0]'的結果將在0-255範圍內。 –