如何解析每个汉字?

时间:2012-05-22 06:55:29

标签: objective-c

给出一个由X个汉字组成的句子。我想用Objective-C或C ++解析每个字符。

我试过了:

NSString * nsText = [NSString stringWithFormat:@"你好吗"];
for (int i = 0; i < [nsText length]; i++) 
{
  char current = [nsText characterAtIndex:i];
  printf("%i: %c\n", i, current);
}

但我没有得到正确的字符,我得到索引0 =',索引1 =}等等。正确返回长度,等于3.我需要UTF8编码将其显示给UI。

任何提示都会有所帮助。 谢谢

2 个答案:

答案 0 :(得分:5)

三件事错了。首先,characterAtIndex:会返回unichar,该char大于您要分配的%c。你在那里失去了信息。其次,%C是打印ASCII值(8位)的格式说明符。您希望unichar(大写'C')打印16位printf()。最后,%C似乎不接受NSLog(),因此您需要使用NSString * nsText = [NSString stringWithFormat:@"你好吗"]; for (int i = 0; i < [nsText length]; i++) { unichar current = [nsText characterAtIndex:i]; NSLog(@"%i: %C\n", i, current); } 。重写,然后,我们有:

{{1}}

答案 1 :(得分:0)

这可以解决您的问题吗?

NSString * nsText = [NSString stringWithFormat:@"你好吗"];
for (int i = 0; i < [nsText length]; i++) {
    NSString *str = [nsText substringToIndex:i+1];
    NSString *str2 =[str substringFromIndex:i];
    NSLog(@"%@",str2);
}