如何在C中向字符串数组添加元素?

时间:2011-01-31 16:47:02

标签: c arrays string

如何在C?

中向字符串数组添加新元素

4 个答案:

答案 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分配内存,然后以相同的方式放置您的项目。