C言語の文字const char *とObjectiveCの文字列NSStringの変換

C言語の文字列とobjectivecの文字列の扱い方はわりと異なるので変換できないように思うのですが、NSStringクラスの関数を使って簡単に変換することができます。細かい文字列処理はCでやりたいってこともあると思うので覚えておくといいでしょう。

NSStringからCの文字列に変換する

これはとても簡単です。NSStringのUTF8string関数を呼ぶだけでNULL文字終端でUTF8のconst char*型の文字列を返してくれます。

NSString *str = @"abc";
const char *p = [str UTF8string];

Cの文字列からNSStringに変換する

initWithUTF8String関数にCの文字列を渡して初期化することでCの文字列からNSSTringに変換できます。

char str_c[100];
strcpy(str_c,"abc");
NSString *str = [ [ NSString alloc ] initWithUTF8String:str ];