将char num [50]复制到std :: string

时间:2013-09-18 07:16:22

标签: c++ string

如何将char数组的内容复制到std :: string(不是转换)

前:

void CApp::ChangeState(GameState* state)
{
std::string strImagePath;
// cleanup the current state
if ( !states.empty() ) {
    states.back()->Clean();
    states.pop_back();
    //states.back()->getImagePath( psImagepath );
}

// store and init the new state
states.push_back(state);
states.back()->Init();

//psImagepath = (char*)malloc(sizeof(char)*50);
states.back()->getImagePath( psImagepath );

printf("MenuState Init path %s\n",psImagepath);

}

我想将我的内容复制到strImagePath中(考虑在类定义中声明strImage路径)

3 个答案:

答案 0 :(得分:6)

只需使用字符串的constructor that takes a char array

char arr[50];
//Fill your array, do stuff, etc, etc
<...>
std::string str(arr);

请注意,传递给构造函数的char数组应该以null结尾。

答案 1 :(得分:1)

您可以使用strImagePath.append(charArray)附加char [],或strImagePath.assign(charArray)以char []内容替换strImagePath之前的内容。

答案 2 :(得分:0)

使用构造函数(std::string(const char* str))或复制赋值运算符(std::string& operator=(const char* str))。