在Symbian中strcpy?

时间:2009-08-13 15:31:28

标签: c++ symbian

我正在寻找Symbian中的strcpy等价物。我不想使用strcpy 功能来自stdlib。

以下是我想做的事情:

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

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

所以基本上我想将TBuf8复制到char数组中。有没有正确的方法来做到这一点 在Symbian? aName必须是char!类型。

由于

2 个答案:

答案 0 :(得分:1)

像这样:

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

但请注意,在unicode版本中,TBuf8字符串很难获得,因此可能会有更多内容。

答案 1 :(得分: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. 

如果您学会用描述符进行思考,那么symbian中的所有文本处理都会更容易。

如果TBuf8包含二进制数据,显然不应使用ZeroTerminate调用。