0

如何将 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 路径在类定义中声明)

4

3 回答 3

6

只需使用带有 char 数组的字符串构造函数:

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

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

于 2013-09-18T07:19:01.170 回答
1

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

于 2013-09-18T07:21:15.163 回答
0

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

于 2013-09-18T07:21:04.823 回答