首页 > 解决方案 > 如何将某些字符从一个字符串传输到另一个字符串?

问题描述

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

我尝试从一个字符串到另一个字符,并将它们保存到另一个字符串。

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

标签: c

解决方案


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

或更一般的

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

推荐阅读