给出一个由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。
任何提示都会有所帮助。 谢谢
答案 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);
}