プロが教える店舗&オフィスのセキュリティ対策術

C(char *s1)の文字列をObjective-Cの文字列(NSString *s2)にするにはどうしたらよいのでしょうか?

char s1[] = "abc";
NSString *s2 = [[NSString alloc] initWithUTF8String:s1];  // (A)

NSLog(@"s2=[%s]", s2);

結果がabcかなと思っていましたが、読めない変な文字が表示されました。
(A)を NSString *s2 = [NSString stringWithFormat:@"%s", s1]; に変えても同じでした。

s1のC文字列は日本語を含まないアルファベットの文字列なのになぜ?と
困っています。

Objective-Cの初心者で申し訳ありません。

A 回答 (2件)

> NSLog(@"s2=[%s]", s2);



「initWithUTF8String:」も正しくないけど、直接のまちがいはこちらですね。
正しくは「NSLog(@"s2=[%@]", s2);」です。

http://developer.apple.com/library/mac/#document …
    • good
    • 0

initWithCString:encoding:



を、お使いください。

http://developer.apple.com/library/ios/#document …

ほかに、
stringWithCString:encoding:
cStringUsingEncoding:
も参考にしてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!