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/

10-13 09:06