c - 将 char 变量传递给数组中的下一个值 - C

标签 c arrays

我需要将一个 char 变量传递给 C 中数组中的下一个值。

我声明了数组(列表)和大小 (0),然后我有了要插入到数组中下一个元素的变量,即值。

char list[100];
size_t size = 0;
char *value = "name";

然后我想将该值插入数组中的下一个元素,但这不起作用:

list[size++] = "%s",value;

这只适用于单个字符,例如:

list[size++] = 'n';
list[size++] = 'a'
list[size++] = 'm'
list[size++] = 'e'

最佳答案

有几种方法可以做到这一点。此外,正确的方法取决于您是想在列表中列出以零结尾的字符串,还是列表中不包含结尾的零。

如果您想包括终止零,那么您可以最初将列表定义为具有字符串文字“name”。

例如

char list[100] = "name";
size_t size = strlen( list );

如果你想将字符串文字放在列表中的定义之后,你可以使用标准函数 strcpystrcat

例如

char list[100];
size_t size = 0;
char *value = "name";

//...
strcpy( list + size, value );
size += strlen( value );

或者

char list[100];
size_t size = 0;
char *value = "name";

//...
list[size] = '\0' // if list already has the terminating zero you may remoce this statement
strcat( list, value );
size += strlen( value );

如果你不想存储终止零那么你应该使用函数memcpy

例如

char list[100];
size_t size = 0;
char *value = "name";

//...
size_t n = strlen( value );
memcpy( list + size, value, n );
size += n;

最后你可以使用循环了。例如

char list[100];
size_t size = 0;
char *value = "name";

//...

char *p = value;

while ( list[size++] = *p++ );

关于c - 将 char 变量传递给数组中的下一个值 - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27355882/

相关文章:

C hello world 程序因变量输出而崩溃

javascript - 我想循环遍历数组并修改属性

arrays - 在结构中写入数组(Golang)

javascript - 生命游戏内存问题 : 3D Array (generations, x, y)。可以最小化内存使用吗?

c - 当我执行此代码时,我遇到段错误(核心转储)...

c++ - 为什么要在结构中保留内存?

c - NULL是如何终止的?

c++ - Linux 中是否有任何 C/C++ 编辑器在键入时显示错误

c++ - 动态数组的排序算法编译器错误

python - 计算星期几的程序