如何将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路径)
答案 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)
)。