如何在C语言中向字符串数组中添加新元素?
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';
str[i++] = new_char;
相当于 str[i] = new_char; i++;
如果还有疑问,请参考 http://stackoverflow.com/q/4865599/191776 - user191776realloc
函数。char foo[25][25];
strcpy(foo[1], "hello world"); /* "puts" hello world in the 2nd cell of the array */
strdup(foo[1], "hello world");
,foo[1]
应该总是在索引 1 上吗?如果数组中有 5 个元素,那么我应该使用 foo[6]
吗?谢谢。 - user1791690
到24
的元素,否则写入错误的内存区域可能导致数据丢失和/或程序崩溃。foo[1]
是指向第二个数组元素,也就是第二个字符串的指针。 - YasirAstrdup
?它看起来不像标准版本。 - bstpierrechar foo[25][25]
)。另外,你不能仅仅将一个动态分配的字符串(指针)赋值给一个数组。尝试编译你的示例代码... - Georg Fritzsche