修改C中的char*字符串

2024-03-06

我有这个:

char* original = "html content";

并想插入一个新的

char* mycontent = "newhtmlinsert";

进入之前的“原文”</body>标签在“原始”中。

我的新原版现在是:

char* neworiginal = "html content before </body>" + "newhtmlinsert" + "html content after </body>";

基本上我想获取 char* 原件并将其转换为 char* 新原件,其中包含原始内容以及我在之前添加的新内容</body>在“原始html内容”中

这是修改后的代码,我仍然需要一些帮助:

* original data */
    data = _msg_ptr->buff();
    data_len = _msg_ptr->dataLen();


/*location of </body> in the original */

    char *insert = strstr(data, "</body>");

/*length of the new buffer string */

    int length = strlen(data)+strlen(ad_content);
    newdata =(char*)malloc(sizeof(char)*length);
    memset(newdata, 0, length);

/*copy the original data upto </body> into newdata*/

    memcpy(newdata,data,insert-data);

/*now add the ad_content */
    strcat(newdata,ad_content);

/*copy the data from </body> to end of original string(data) into newdata */

    memcpy(newdata,data,data_len - ending );

我如何执行最后一条语句:memcpy(newdata,data,data_len - ending );

  i  need to copy the remainder of the data from my char* data beginning from an

最后......我如何正确计算memcpy中的“结束”参数?

这是使用字符串的 C++ 版本

char *insert = strstr(_in_mem_msg_ptr->buff(), "</body>");//get pointer to </body>
string ad_data = string(_in_mem_msg_ptr->buff(),insert - _in_mem_msg_ptr->buff()) ;//insert the part of _in_mem_msg_ptr->buff() before the </body>
ad_data.append(ad_content); //add the new html content 
ad_data.append(_in_mem_msg_ptr->buff(),insert- _in_mem_msg_ptr->buff(),_in_mem_msg_ptr->dataLen()); //remainder of _in_mem_msg_ptr->buff() from and including </body> to the end

假如说char* original由两部分组成,一部分从 0 开始,另一部分(之后的 html 内容)从x您可以使用strcat and memcpy:

int length = strlen(original)+strlen(newcontent)+1;
char *neworiginal = malloc(sizeof(char)*length);
memset(neworiginal, 0, length);
memcpy(neworiginal,original,x*sizeof(char));
strcat(neworiginal,newcontent);
strcat(neworiginal,original+x);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

修改C中的char*字符串 的相关文章

随机推荐

  • 有没有办法使用java在Linux机器上获取用户的UID?

    有没有办法使用java在Linux机器上获取用户的UID 我知道System getProperty user name 方法 但它返回用户名 我正在寻找 UID 你可以执行id命令并读取结果 例如 id u jigar output 10
  • 如何在Qt6中的QML中使用QVideoSink

    我创建了自己的视频接收器 继承自QVideoSink在 Qt 6 中 我想在 QML 端显示该接收器的内容 我该怎么做 VideoOutputQML 类型有videoSink属性 但它是只读的 VideoOutput 和 QVideoWid
  • 使用最新的 Xcode 在 iOS 3.1.3 中进行测试

    如何使用最新的 Xcode 版本在 iOS 3 1 3 中测试应用程序 可以在模拟器中执行此操作吗 如果没有 是否可以将设备降级到 iOS 3 1 3 是的 您可以降级设备 它没有得到官方支持 但我已经在两台 3G 上完成了它 并在 3 1
  • 将字符串添加到 ImageView 对象 Android

    我需要将一个字符串附加到 ImageView 对象中 以便我可以执行类似的操作imgView1 getString 它会返回它 我知道有getTags and setTags但根据我的理解 它只使用整数 谢谢 只需补充 dharms 答案
  • 没有使用 Spring Security 进行身份验证和授权

    我的项目要求我使用 Spring Security 进行 CSRF 和 XSS 保护 但不使用它进行身份验证和授权 我已将 SS 配置到我的应用程序中 但每次访问页面时 它都会自动将我重定向到其登录页面 我如何禁用此功能 我的Securit
  • 指定 cartopy 中的纬度/经度标签位置(删除某些边)

    Cartopy 0 18 0 中为任何地图投影添加纬度 经度标签的新功能非常出色 这是这个包的一个很好的补充 对于某些地图 特别是在极地地区 纬度 经度标签可能非常拥挤 这是一个例子 from matplotlib import pyplo
  • 扩展网址如何工作

    我知道这些类型的 URL 如何加载页面 基于它们的 GET 参数 在后端大致是这样的 但这些类型的 URL 是如何工作的呢 我的意思是 数据是如何动态加载的 www dummysite com parm subpage1 xyz www d
  • 处理连续的 JSON 流

    现已不复存在 页面http stream twitter com 1 statuses sample json http stream twitter com 1 statuses sample json用于返回连续且无限的 JSON 数据
  • 第一次执行代码时颜色不正确

    我有一段代码可以在一页上绘制多个堆叠条形图 我指定了一个调色板 以便每个数据组都与每个图表中的相同颜色相关联 我发现第一个图表中的颜色不正确 但在所有后续图表中都是正确的 如果我在同一个 R 会话中重新运行代码 所有图表都具有正确的颜色 但
  • 如何在 Mac 上设置 2.7 的 python 路径?

    我知道 这个问题已经被问过很多次了 也被回答过很多次了 但是 我仍然无法摆脱这个 我在我的 mac 上发现了以下信息 cd Library Frameworks Python framework Versions Current gt 2
  • 如何管理pouchdb和couchdb同步?

    存储多个用户数据的最佳方法是每个用户每个数据库 我正在使用同样的方法 我在服务器上有 couchdb 在移动应用程序上有 pouchdb 我通过在 pouchdb 和 couchdb 中为用户创建单独的数据库来维护每个用户数据 这意味着我在
  • 将 ssh 密钥与 scp 和 ssh 结合使用

    我正在尝试使用 scp 将一些文件复制到目标系统 然后登录到系统并安装这些文件 我在这里使用 scp 和 ssh 命令以及 ssh 密钥进行无密码身份验证 ssh 密钥是在源系统上创建的 如下所示 这是创建 ssh 密钥的正确且安全的方法吗
  • 为什么我不能在java中的Frame上画任何东西?

    编码就在这里 我无法在框架内创建任何矩形或圆形 该项目的目标是创建转换 celcius 2 华氏度和华氏度 2 摄氏度 所以我想要的是 请教我如何在框架旁边绘制矩形或椭圆形 import java awt BorderLayout impo
  • JESS 引擎的网页不可用

    http www jessrules com http www jessrules com and https herzberg ca sandia gov https herzberg ca sandia gov 不要再工作了 我如何获得
  • graphql-codegen 未使用配置文件运行

    In my package json文件我有运行的脚本条目graphql codegen但它抱怨说 config参数无效 gt yarn gen yarn run v1 21 1 graphql codegen config codegen
  • 气流动态 dag 创建

    有人请告诉我气流中的 DAG 是否只是一个图表 如占位符 没有任何与其关联的实际数据 如参数 或者 DAG 是否像一个实例 对于固定参数 我想要一个系统 其中要执行的操作集 给定一组参数 是固定的 但每次运行这组操作时 该输入都会不同 简单
  • Angular 2注入在继承中不起作用

    最近我们从 Angular 2 0 升级到 2 4 从那时起我们就遇到了继承问题 如果我们调用子进程 所有依赖项都会变得未定义 孩子没有构造函数 这意味着它使用父亲的构造函数 这是代码 Injectable export class Chi
  • 使用 ajax 下拉菜单中的 onclick 事件更新隐藏的输入值

    我正在使用 MachForm 并添加了这个隐藏字段
  • Spring Boot - 在 application.properties 中获取 Spring-Kafka 客户端 ID 的主机名

    我正在使用 Spring Kafka 和 Boot 开发一个项目 并且希望在 application properties 中获取属性 spring kafka consumer client Id 的主机名 以便可以在服务器端日志中区分我
  • 修改C中的char*字符串

    我有这个 char original html content 并想插入一个新的 char mycontent newhtmlinsert 进入之前的 原文 标签在 原始 中 我的新原版现在是 char neworiginal html c