2

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に相当します。UIに表示するには、UTF8エンコーディングが必要です。

ヒントは役に立ちます。ありがとうございました

4

2 に答える 2

5

3つの間違い。まず、割り当て先よりも大きい、をcharacterAtIndex:返します。あなたはそこで情報を失っています。2つ目は、ASCII値(8ビット)を出力するためのフォーマット指定子です。(大文字の「C」)16ビットを印刷したい。最後に、を受け入れないようですので、代わりに使用する必要があります。書き直して、次のようになります。unicharchar%c%Cunicharprintf()%CNSLog()

NSString * nsText = [NSString stringWithFormat:@"你好吗"];
for (int i = 0; i < [nsText length]; i++) 
{
    unichar current = [nsText characterAtIndex:i];
    NSLog(@"%i: %C\n", i, current);
}
于 2012-05-22T07:21:56.970 に答える
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);
}
于 2012-05-22T07:25:29.883 に答える