C++ 清除C+中固定字符数组的内容+;赋值后
嗨,我有以下代码:C++ 清除C+中固定字符数组的内容+;赋值后,c++,arrays,char,C++,Arrays,Char,嗨,我有以下代码: char msg[10000]; string mystr = "hello"; // stores mystr into msg copy(mystr.begin(), mystr.end(), msg); 在代码复制之后,我想清除char msg[10000]的内容。我该怎么做 char msg[10000]; memset(msg, 0, 10000); 如果您知道填充数据的大小: memset(msg, 0, SizeOfFilledData); 使用现代化设施
char msg[10000];
string mystr = "hello";
// stores mystr into msg
copy(mystr.begin(), mystr.end(), msg);
在代码复制之后,我想清除char msg[10000]的内容。我该怎么做
char msg[10000];
memset(msg, 0, 10000);
如果您知道填充数据的大小:
memset(msg, 0, SizeOfFilledData);
使用现代化设施
std::array<char, 10000> msg;
string mystr = "hello";
// stores mystr into msg
copy(mystr.begin(), mystr.end(), msg.begin());
// then clear it again
msg = {{}};
std::array msg;
字符串mystr=“hello”;
//将mystr存储到msg中
复制(mystr.begin(),mystr.end(),msg.begin());
//然后再清除它
msg={{};
不知道你为什么要先复制然后清除,但这就是你可以做到的。如果没有C++11通用初始值设定项,您可以说
msg = std::array<char, 10000>();
msg=std::array();
当然,您可以始终使用
boost::array
而不是std::array
,它的工作原理是一样的。如果您确实想清除整个数组,那么按照Andrew的建议使用memset
就是一种方法。但是,如果您只想确保字符串长度为零,只需清除第一个条目即可:
msg[0] = '\0';
如果你想清除这个字符串,那么把它复制到msg有什么意义呢?不过如果他正在学习,而且编译器不是新的,那么就会比以前更加混乱。