2009-08-13 8 views
0

私はSymbianでstrcpy相当物を探しています。 stdlibのstrcpy 関数を使用したくありません。ここでSymbianのstrcpy?

は私はないしたいものです。

char name[128]; 
TBuf8 aName = _L("Test"); 

strncpy(name, aName.Ptr(), 127); 
*(name + MAX_FILENAME_LEN) = 0; 

だから基本的に私は、char型の配列にTBuf8をコピーしたいです。 Symbianで を実行する適切な方法はありますか? aNameはchar型でなければなりません!

おかげでこのよう

答えて

1

TInt size = aName.Size() <= 127 ? aName.Size() : 127; 
Mem::Copy(name, aName.Ptr(), size); 
name[size] = 0; 

しかし、ビルドをユニコードにそれを注意してくださいは、TBuf8文字列がで来るのは難しいですので、これよりもそれによりがあるかもしれません。

1
char name[128]; 
TBuf8 name_buf = _L("Test"); 
TPtr8 name_ptr = TPtr8(name,sizeof(name)); 
name_ptr = aName; 
name_ptr.ZeroTerminate(); //if it supposed to be a zeroterminated string. 

記述子で考えることを学ぶと、すべてのテキスト処理がより簡単になります。

TBuf8にバイナリデータが含まれている場合は、明らかにZeroTerminate呼び出しを使用しないでください。