!!!文字列の管理(NSString) Cocoa上での文字列の管理は「NSString」クラスにて行うことができます。 !!文字列クラス(NSString)の生成 カラの文字列を生成します。 NSString *pStr = [[NSString alloc] init]; !!文字列クラスの破棄 生成した文字列を解放します。 [pStr release]; 使用後は必ず解放するようにしてください。 以降、pStrは「NSString *」型とします。 !!文字列を代入 pStr = @"文字列です"; 決まった文字列を入れる場合は、「@"〜"」の中に文字列を入れるようにします。 !!文字列の長さを取得 int len = [pStr length]; 「length」関数にて文字列の長さを求めます。全角は1文字にカウントされますので(バイト数ではないです)注意してください。 !!文字列を連結する NSString *pStr1 = [[NSString alloc] init]; NSString *pStr2 = [[NSString alloc] init]; pStr1 = @"文字列1"; pStr2 = @"文字列2"; // pStr1とStr2を連結して、新たにpStr3のNSStringを生成する NSString *pStr3 = [pStr1 stringByAppendingString:pStr2]; // 使用した文字列を解放 [pStr1 release]; [pStr2 release]; [pStr3 release]; 文字列の連結は「stringByAppendingString」にて行います。 この場合は、pStr3に「文字列1文字列2」の内容がnewされます。 !!文字列が同じか調べる NSString *pStr = [[NSString alloc] init]; pStr = @"ABCDEFG"; bool b = [pStr stringByAppendingString:@"ABCDEFG"]; [pStr release]; 文字列の比較は「stringByAppendingString」にて行います。上記の場合は、pStrの文字列と"ABCDEFG"は同じなので、変数bにtrueが返ります。 !!指定位置の文字列を取り出す NSString *pStr = [[NSString alloc] init]; pStr = @"ABCDEFG"; NSString *pStr2 = [pStr substringWithRange:NSMakeRange(0, 3)]; [pStr release]; [pStr2 release]; 文字列から指定した位置、長さの文字列を取り出します。 上記の場合は「ABCDEFG」から0番目の3も自分を「substringWithRange」関数にて取り出すことになります。 pStr2には「ABC」が入ることになります。 !!C言語文字列を取得 NSString *pStr = [[NSString alloc] init]; pStr = @"ABCDEFG"; const char *pS; pS = [pStr UTF8String]; [pStr release]; NSStringのままではC言語からはアクセスできないため、「UTF8String」にて「const char *」型の文字列の先頭ポインタを取得します。文字列はUTF-8にて取得することができます。 !!C言語文字列をNSStringとして生成 char szStr[256]; strcpy(szStr, "hehoe"); NSString *str = [[NSString alloc] initWithUTF8String:szStr]; [str release]; C言語文字列(ここではszStrにて指定)をNSStringに変換します。「initWithUTF8String」関数を使用。