我有一个填充“char array_of_strings[100][100];”的循环 在某些时候,我希望能够从到目前为止添加的所有字符串中清除它并从位置 0 开始添加。如何在 C 中清除/休息它?
谢谢
您可以使用memset 函数将所有字符设置回零。
PS 使用二维数组来处理字符串是相当不合常规的。尝试动态分配单个字符串。
该数据结构确实没有固有结构。你基本上通过假装里面什么都没有来重置它。
您有一些计数器可以告诉您填充了哪些字符串,对吗?将其设置为零。完毕。
假设您实际上将数组用作字符串,那么这样的事情应该可以工作:
int i;
for (i=0; i<100; i++)
array_of_strings[i][0] = 0;
当然,如果您没有将数据视为字符串,那么您可能需要查看 memset 之类的东西。
memset(array_of_strings, 0, sizeof(array_of_strings));
这比在其中放置一个大小的幻数更干净,并且当有人更改您的字符串数组的大小时不太可能打破道路。由于您在编译时知道数组的大小,因此使用 sizeof 将起作用。
您也可以使用 bzero,它很像 memset,但仅用于归零。在某些平台上,bzero 可能比 memset 更快,但老实说,这两个函数都非常快,在这里分裂头发是愚蠢的。
bzero(array_of_strings, sizeof(array_of_strings));
bzero 要求你 #include memset 需要 #include