如何获取NSString *的ascii值,指向一个字符?

时间:2011-09-22 00:38:04

标签: objective-c

当出现@"a"时,我希望能够得到它的ascii值为97.

我以为这样做了

NSString *c = [[NSString alloc] initWithString:@"a"];
NSLog(@"%d", [c intValue]); // Prints 0, expected 97

但是......你猜对了(或者知道了:))..它没有。

如何获得NSString *的ascii值,指向一个字符?

2 个答案:

答案 0 :(得分:5)

NSString *str = @"a";
unichar chr = [str characterAtIndex:0];
NSLog(@"ascii value %d", chr);

为什么你的方法不起作用是因为你在STRING上操作还记得吗?不是一个字符。它仍然是一个NSString。

答案 1 :(得分:4)

NSLog(@"%d",[c characterAtIndex:0]);

NSString class reference:接收者文本的整数值,假设为十进制表示并在字符串的开头跳过空格。溢出时返回INT_MAX或INT_MIN。 如果接收方没有以数字的有效十进制文本表示开头,则返回0.

因此,它返回0,因为您在数字的无效十进制文本表示上调用了intValue。