Max*_*Max 8 c++ string char memcpy
我已经做了一些基本的阅读,并从我收集的内容.c_str()始终有一个空终止符.
我有一个相当简单的C++程序:
int main(int argc, char** argv)
{
std::string from = "hello";
char to[20];
memcpy(to, from.c_str(), strlen(from.c_str())+1);
std::cout<< to << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这个memcpy是否会确保我将一个以null结尾的字符串复制到我的变量中(假设我的字符串来自较短的长度)?
您应该std::string用来复制字符串。但是,如果您想要这样做,则应使用strcpy而不是memcpy
int main(int argc, char** argv)
{
std::string from = "hello";
char to[20];
strcpy(to, from.c_str());
std::cout<< to << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)