我需要将一个 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 );
如果你想将字符串文字放在列表中的定义之后,你可以使用标准函数 strcpy
或 strcat
例如
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/