如何将某些字符从一个字符串转移到另一个字符串?

时间:2019-05-12 12:09:52

标签: c

我想将一些字符从一个字符串保存到另一个。

我尝试从一个字符串中的一个字符到另一个字符,然后将它们保存到另一个字符串中。

#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。

1 个答案:

答案 0 :(得分:1)

memcpy(rec,sent,3)
rec[3] = 0;

或更笼统

memcpy(rec,sent,len)
rec[len] = 0;