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。
解决方案
memcpy(rec,sent,3)
rec[3] = 0;
或更一般的
memcpy(rec,sent,len)
rec[len] = 0;
推荐阅读
- c - 处理文件或标准输入
- c# - MVC [Authorize] 属性适用于除主页之外的每个页面
- rabbitmq - 从 OS 映像克隆的 VM 上的 RabbitMQ 无法启动,可能是由于节点名称
- javascript - 如果我的接口对象具有相似的键,则尝试为它分配值?
- ruby-on-rails - 根据第三个属性按不同属性对 ActiveRecord 集合进行排序
- tfs - 如何在 TFS 2018 中为一组分析师授予自定义权限?
- julia - 让 Julia 出现在 JupyterLab
- android - 如何隐藏自定义微调器中的下拉箭头?
- python - Holoviews/Bokeh 区域图将 Hovertool 添加到区域图
- c# - 向后拖动滑块时删除WPF中的圆圈