在C中为数组包含索引是一种好的做法吗?
我在C中有一个存储字符串的数组,我需要能够动态地附加到此数组。将此数组的索引存储在单独的变量中是一种很好的做法,还是有更好的方法?这是我的密码 首先定义这些变量在C中为数组包含索引是一种好的做法吗?,c,arrays,string,char,C,Arrays,String,Char,我在C中有一个存储字符串的数组,我需要能够动态地附加到此数组。将此数组的索引存储在单独的变量中是一种很好的做法,还是有更好的方法?这是我的密码 首先定义这些变量 char x[10][10]; int x_index = 0; 将字符串添加到此数组中 strcpy(x[x_index], "hello"); x_index += 1; strcpy(x[x_index], "world"); x_index += 1; 您应该将索引称为数组的长度,因为它是:数组中有效项的数量。还有其他条目,
char x[10][10];
int x_index = 0;
将字符串添加到此数组中
strcpy(x[x_index], "hello");
x_index += 1;
strcpy(x[x_index], "world");
x_index += 1;
您应该将索引称为数组的长度,因为它是:数组中有效项的数量。还有其他条目,但不应访问它们 这不仅是良好的做法,而且在大多数情况下,有必要跟踪当前的规模。否则,您怎么知道ehere要附加下一项?在C中,这必须通过一个额外的变量来完成。(确保您可以看到数组和长度属于一个一致的命名法。) 确保长度不超过数组的大小,在您的示例中为10。通常,您必须同时跟踪长度和大小,其中大小可以是编译时常量
if (xlen < XSIZE) strcpy(x[xlen++], str);
if(xlen
(当然,您还必须注意不要使10个字符的缓冲区溢出。)对于需要以任何方式解析每个元素(并且只解析,不插入)的数组,最好在数组末尾放置一个特殊值,例如字符数组中的“\0”,以便告诉解析循环何时停止。如果数组已填充,您该怎么办?@SebastianWalla这段代码当然是一个示例,在生产
if(x\u索引)中