如何在C?
中向字符串数组添加新元素答案 0 :(得分:5)
如果是字符串,您只需使用strcat()
(some docs)。要小心,你只能扩展你允许记忆的数量。你可能需要realloc()
,就像另一张海报所说的那样。
答案 1 :(得分:2)
C中的字符串由一个字符数组组成。为了使用printf调用正确打印字符串,必须使用NULL字符(\ 0)终止它。
添加新元素即。一个字符,到一个字符串的末尾,移动到NULL字符&用新字符替换它,然后在它之后放回NULL。这假设新角色已经有足够的空间。
char str[100];
char new_char = 'a';
int i = 0;
...
// adds new_char to existing string:
while(str[i] != '\0')
{
++i;
}
str[i++] = new_char;
str[i] = '\0';
答案 2 :(得分:1)
如果要扩展阵列,则需要为其重新分配内存。查看realloc
。
答案 3 :(得分:0)
这取决于你所谓的数组。
如果你有静态分配固定长度数组,那么你可以只复制第i个元素中的数据。
char foo[25][25];
strcpy(foo[1], "hello world"); /* "puts" hello world in the 2nd cell of the array */
如果您使用了动态数组,则必须首先确保仍有空间,otherwize分配内存,然后以相同的方式放置您的项目。