我想将一些字符从一个字符串保存到另一个。
我尝试从一个字符串中的一个字符到另一个字符,然后将它们保存到另一个字符串中。
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char *sent, *rec;
int i, a;
sent = malloc(100);
rec = malloc(100);
gets(sent);
a = strlen(sent);
for (i = 0; i < 3; i++)
*(rec + i) = *(sent + i);
a = strlen(rec);
rec = realloc(rec, 4);
puts(rec);
}
如果我输入“ Hello world”,则预期输出应该是“ Hel”,但它是“ Hel”和一些随机字符。而且我也不明白为什么rec的长度等于14。
答案 0 :(得分:1)
memcpy(rec,sent,3)
rec[3] = 0;
或更笼统
memcpy(rec,sent,len)
rec[len] = 0;