【发布时间】:2011-04-20 11:00:11
【问题描述】:
我的代码是这样的:
string s = "abc";
char* pc = const_cast<char*>( s.c_str() );
pc[ 1 ] = 'x';
cout << s << endl;
当我使用 GCC 编译上面的 sn-p 时,我得到了预期的结果 "axc"。我的问题是,以这种方式修改 C++ 字符串的底层 char 数组是否安全且可移植?或者可能有其他方法可以直接操作字符串的数据?
仅供参考,我的目的是编写一些可以被 C 和 C++ 调用的纯 C 函数,因此,它们只能接受 char* 作为参数。从char* 到字符串,我知道涉及复制,处罚是不利的。那么,任何人都可以提出一些建议来处理这种情况。
【问题讨论】: