NSStringからcStringを取得します。
私たちはEncoding Using:Stringメソッドを使用しました。
ただし、c String Using Encoding:メソッドの戻り値は保証されていません。
(Appleのdoc:返されたC文字列は、受信者が解放されるまで有効です)
Appleはget CString:max Length:encoding:メソッドを推奨しています。
正確な長さをmaxLengthに渡したいと思います。
UTF-8文字列の長さをバイト単位で取得する最も良い方法は?
例1)
NSString *tmp = @"中日韓" // cString 9bytes
char *buffer = new tmp[9 + 1];
[tmp getCString:buffer maxLength:9+1 encoding:NSUTF8StringEncoding];
例2)
NSString *tmp = @"中日韓123" // cString 12bytes
char *buffer = new tmp[12 + 1];
[tmp getCString:buffer maxLength:12+1 encoding:NSUTF8StringEncoding];
上記実施例9及び12の長さを知る方法はありますか?
あなたのコードが有効でないとコンパイルされません:あなたは、その後、
tmp
よりも長生きしたchar *
が必要な場合は、単純にC-文字列をコピーします。 'NSString * tmp = @"あなたの文字列 ";"か、 'char * tmp ="あなたの文字列 ";'を意味しますか? – rmaddy@rmaddy申し訳ありませんが、私の間違いです。私はそれを編集した。 – user3569109
なぜこのタグはC++ですか?あなたはObjective-Cコードしか持っていません。 – rmaddy