读书人

c_str()函数应用的一些有关问题

发布时间: 2012-09-23 10:28:11 作者: rapoo

c_str()函数应用的一些问题
string aa;
char * bb = "abc";
strcpy_s((char *)aa.c_str(), strlen(bb) + 1, bb);
//这时候 aa 中有值 是“abc”
vector<string> vecStr;
vecStr.push_back(aa);
//但是这时候 vecStr中的第一个元素是空的string
//如果上边用的是直接赋值 aa = bb; 那下边的vector中就会有值
想问下这是怎么回事

[解决办法]
把这句

C/C++ code
strcpy_s((char *)aa.c_str(), strlen(bb) + 1, bb);
[解决办法]
应该用aa = bb;

strcpy_s((char *)aa.c_str(), strlen(bb) + 1, bb);
LZ强制操作写了string内部数据的句柄,aa是不完整的。

读书人网 >C++

热点推荐