4

NSStringunsigned char 配列 (ASCII エンコード) から単純なものを初期化しようとしています。問題は、\0配列に区切り文字としていくつかの s があることです。私が使用する場合

[[NSString alloc] initWithBytes:bytes length:length encoding:NSASCIIEncoding];

最初の までの部分しか取得しません\0。sがあっても、長さパラメーターで指定されたバイト数を取得する方法はあります\0か?

4

1 に答える 1

5

配列全体が文字列になりますが、表示しようとするとイニシャルまでしか表示されません\0

この点を説明するコードは次のとおりです。

unsigned char data[] = "hello\0world";
NSString *str = [[NSString alloc] initWithBytes:data length:sizeof(data) encoding:NSASCIIStringEncoding];
NSLog(@"%@", str);
NSLog(@"%@", [str substringFromIndex:6]);

これにより、次のログ出力が生成されます。

hello
world
于 2012-08-12T15:55:20.557 に答える