如何获得一个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范围内。 –