Possible Duplicate:
Convert std::string to const char* or char*
是否有任何东西可以将字符串从stl映射中获取并返回到char数组中?
multimap<string, string> testcase;
testcase.insert(pair<string,string>("DB","something"));
for( i=testcase.begin(); i!=testcase.end(); ++i){
char cate[20] =(*i).first;
我的代码看起来像这样...我可以将(* i).first(或第二个)保存到字符数组中吗?
最佳答案
假设您知道字符串的大小,则使用您的初衷:
char cate[20];
assert(i->first.size() < sizeof(cate));
strcpy(i->first.c_str());
但是,如果要复制字符串,则需要:
string cate(i->first);
还是C风格:
char *cate(strdup(i->first.c_str()));
最后,使用“ C”指针访问字符串:
char const *cate = i->first.c_str();
关于c++ - STL映射和C++ ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4151836/