【发布时间】:2010-12-06 06:43:12
【问题描述】:
有一个字符数组,如 char 成员 [255]。如何在不使用循环的情况下完全清空它?
char members[255];
“空”是指如果它存储了一些值,那么它不应该。例如,如果我执行 strcat,则不应保留旧值
members = "old value";
//empty it efficiently
strcat(members,"new"); // should return only new and not "old value new"
【问题讨论】:
-
“清空数组”是什么意思?
-
members[0]=members[1]=members[2]=members[3]...=members[255]=0 没有循环 ;)
-
所以你的“数组”是一种特殊的数组:它是一个
string。要“清空”字符串,请将其第一个元素设置为 '\0':members[0] = '\0'; -
社区似乎支持 memset。但考虑到我的要求,这是最有效的方法吗?
-
@Alex Xander:在这种情况下,“社区”显然是错误的。在某些情况下需要“memset”(例如清除数据以防止未经授权的使用),但对于简单的字符串重置(如您的情况),正确的答案是仅将第一个元素归零。