如何将大小为100字符数组设置为空格,然后将10个字符从其他字符复制到相同的字符串。例如:
有一个char数组a100要做:将其全部设置为空白
现在有了另一个数组: b10 To do :将此数组复制到前一个数组中
What iam doing is : memset(a, ' ', sizeof(a));
350 memcpy(a,b, strlen(b))但是在复制了10个字符之后,我没有得到我设置的空间。
发布于 2012-01-13 20:26:57
尝试以下操作:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LENGTH 100
int main(int argc, char *argv[])
{
char *a = NULL;
char b[10] = "abcdefghi"; /* note that this has a trailing null character */
a = malloc(LENGTH + 1);
if (a) {
*(a + LENGTH) = '\0';
memset(a, ' ', LENGTH);
fprintf(stdout, "a (before):\t[%s]\n", a);
memcpy(a, b, sizeof(b) - 1); /* strip trailing null */
fprintf(stdout, "a (after):\t[%s]\n", a);
free(a);
}
return EXIT_SUCCESS;
}运行以下命令:
$ gcc -Wall test.c
$ ./a.out
a (before): [...100 spaces...........]
a (after): [abcdefghi...91 spaces...] ]发布于 2012-01-13 20:27:05
数组的最后一个位置缺少空\0字符。
发布于 2013-10-19 09:34:43
您不认为需要将类型强制转换为(char *)吗
a = (char *) malloc(LENGTH + 1);https://stackoverflow.com/questions/8850448
复制相似问题