社区
C语言
帖子详情
怎样从一个字符串里面找到特定的单词,然后用别的单词取代?用c语言实现!!!
tohy
2003-06-01 04:28:21
谢谢
...全文
566
10
打赏
收藏
怎样从一个字符串里面找到特定的单词,然后用别的单词取代?用c语言实现!!!
谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
windbells
2003-06-02
打赏
举报
回复
给你个建议
1、比较查找字符串和替换字符串的长度,如果替换字符串的长度小于查找字符串的话
执行第一便扫描,匹配算法可以采用改进后的Boyer-Moore-Horspool算法,要比strstr()函数快上5~7倍,找到后直接替换,多出的长度部分用特殊字符填充,替换完成后,如果前一步有发现则执行最后一边扫描,用指针交替移动的方法,遇到特殊字符,把后面的向前填充.
2、如果相等的话,少了前一步的最后扫描工作。
3、如果长度比要查找的大,第一遍扫描记下找到的个数,位置,然后计算出替换后字符串的总长,然后申请需要的空间,根据找到的位置构造新的字符串。原有的字符串空间释放。
(参数传递可以采用引用指针方式,返回时直接替换掉源字符串指针值,防止访问源字符串指针报错)
arfi
2003-06-02
打赏
举报
回复
#include <stdio.h>
#include <string.h>
void back(char *str, int len)
{
char *p = str;
while(*p++);
for(;p>=str;p--)
*(p+len) = *p;
}
char *replace(char *sour, char *findstr, char *replstr)
{
char *p;
int flen, rlen;
flen = strlen(findstr);
rlen = strlen(replstr);
while(1)
{
p = strstr(sour, findstr);
if(p == NULL)
break;
if(flen > rlen)
{
strcpy(p, replstr);
p += rlen;
strcpy(p, p+(flen-rlen));
}
else if(flen < rlen)
{
back(p+flen, rlen-flen);
memcpy(p, replstr, rlen);
p += rlen;
}
else
{
memcpy(p, replstr, rlen);
p += rlen;
}
}
return sour;
}
void main(void)
{
char sour[80] = "hello world, who are you?";
replace(sour, "world", "earth");
printf("%s\n", sour);
}
tohy
2003-06-02
打赏
举报
回复
关注!
witcheese
2003-06-02
打赏
举报
回复
1
wahao
2003-06-01
打赏
举报
回复
我为了它忙了一个星期了
可是……
我好伤心
tohy
2003-06-01
打赏
举报
回复
好象不行也!!
TripleX
2003-06-01
打赏
举报
回复
用正则表达式库吧 可以着很多意想不到的字符串处理 :)
hillyee
2003-06-01
打赏
举报
回复
关注
windbells
2003-06-01
打赏
举报
回复
source为源字符串,findstr为需要查找被替换的字符,replacestr为替换字符
char *replace(char *source,char *findstr,char *replacestr)
{
char *p=strstr(source,findstr);
int len;
int flen;
int rlen;
if(p)
{
int pos=p-source;
flen=strlen(findstr);
rlen=strlen(replacestr);
if(flen>=rlen)
{
memcpy(&source[pos],replacestr,rlen);
if(flen>rlen)
{
strcpy(&source[pos+rlen],&source[pos+flen]);
}
return source;
}
else
{
int len = strlen(source);
char *szStr = new char[len+rlen-flen+1];
memset(szStr,0,len+rlen-flen+1);
memcpy(szStr,source,pos);
memcpy(&szStr[pos],replacestr,rlen);
strcat(szStr,p+flen);
delete []source;
return szStr;
}
}
return NULL;
}
zalyer
2003-06-01
打赏
举报
回复
c语言有一个函数可以搜索子串,并返回它的位置,然后替换就可以了。
Java架构技术视频.zip.005
Java架构技术视频.zip.005
IOS游戏源码pachun-Rocket-Defender-b3b87f2
IOS游戏源码pachun-Rocket-Defender-b3b87f2
人工智能GPT-5.4多场景实战应用指南:企业自动化与个人效能提升综合解决方案
内容概要:本文《2026年GPT-5.4实战应用完全指南报告》系统介绍了GPT-5.4的核心能力及其在企业、专家、讲师、老板、主播、电商和初学者七大类人群中的具体应用场景。GPT-5.4具备原生计算机操控、百万Token上下文、Excel深度集成、深度推理与编程等突破性能力,能够
实现
自动化办公、智能分析、内容生成、决策支持等高阶任务。文中提供了涵盖财务、法律、市场、人力资源、培训、电商运营等数十个高频场景的实战方案与提示词模板,帮助用户快速落地AI应用,显著提升效率与变现能力。; 适合人群:企业管理人员、行业专家、培训讲师、创业者、内容创作者、电商运营者及AI初学者。; 使用场景及目标:①通过自动化手段降低企业运营成本,提升工作效率;②帮助专业人士快速生成报告、课程、方案等高价值内容;③赋能个体创作者
实现
内容批量生产与多平台分发;④指导初学者系统学习AI技能并应用于求职、写作、理财等生活场景。; 阅读建议:本指南强调“即学即用”,建议读者结合自身角色选取对应章节,直接套用提供的提示词模板进行实践,并根据输出结果持续优化指令,充分发挥GPT-5.4的代理式执行能力。
顶刊复现配电网两阶段鲁棒故障恢复研究(Matlab代码
实现
)
内容概要:本文围绕配电网两阶段鲁棒故障恢复问题展开研究,基于Matlab代码
实现
了对IEEE顶刊论文的复现,系统构建了包含两阶段鲁棒优化模型与确定性模型在内的完整故障恢复框架。研究聚焦于提升故障后配电网的供电可靠性与恢复能力,通过第一阶段的网络重构与资源预调度,以及第二阶段对不确定性因素(如负荷波动、分布式电源出力间歇性)的动态响应,
实现
供电快速恢复与负荷损失最小化。采用鲁棒优化方法有效处理系统不确定性,保障运行方案的安全性与可行性,并提供完整的仿真代码与实验结果,验证了所提模型在复杂场景下的有效性与先进性。; 适合人群:具备电力系统分析基础、熟悉Matlab编程环境,从事配电网优化运行、故障恢复策略、鲁棒优化建模等方向的研究生、科研人员及电力系统工程技术人员。; 使用场景及目标:① 掌握配电网故障恢复中两阶段鲁棒优化的建模思想与数学表达;② 复现并验证高水平期刊论文中的优化算法,支撑科研仿真与方法对比;③ 应用于实际配电系统应急恢复方案设计,提升面对突发故障的自愈能力与运行韧性。; 阅读建议:建议结合Matlab代码逐模块调试运行,重点关注YALMIP工具箱调用、两阶段优化问题的建模结构与列与约束生成(C&CG)算法的
实现
流程,深入理解鲁棒对等转化机制,并可进一步拓展至主动配电网、高比例可再生能源接入等复杂应用场景的适应性研究。
RADTools 2安装文件(bak解包)
源码下载地址: https://pan.quark.cn/s/1e5deb07fd7f **RADTools 2安装文件说明**RADTools 2是一款为游戏开发者和爱好者量身打造的软件,其核心功能在于处理游戏环境中的BAK文件。BAK文件是众多游戏中采用的一种数据存储方案,通常承载着游戏的各种元素,包括图像、声音、动画以及剧本等资料。借助RADTools 2,用户可以轻松地解包这些BAK文件,进而对文件内的内容进行查看、编辑或导出,这一过程对于游戏调试、MOD开发或深入探究游戏构造具有显著的辅助作用。**BAK文件解包过程**BAK文件采用压缩格式,旨在节省存储空间并确保游戏资源不被随意篡改。RADTools 2内置的解包机制能够将BAK文件转换回其初始的数据形态,使用户得以洞察每个资源的详细构成。解包操作通常自动化完成,用户只需选定相应的BAK文件,再借助RADTools 2的图形界面进行操作,即可
实现
解包,无需具备专业的编程知识。**封包视频预览功能**RADTools 2不仅具备基础的解包能力,还支持对封包视频的预览。部分游戏为了优化存储效率,会将视频文件整合在BAK文件内。借助这一工具,用户可以直接预览这些内置的视频内容,无需事先进行解包。这一特性对于游戏开发者而言,意味着可以在开发环境中即时评估视频素材的表现。**简易安装与操作**"RADTools 2原生安装包"代表了该软件提供了高效的安装体验。用户只需获取并启动`RADTools_2.exe`,遵循安装向导的指引操作,即可在个人计算机上顺利完成RADTools 2的部署。安装后,用户可以直接通过软件界面启动RADTools 2,无需进行额外的系统设置,充分展现了其便捷性和用户友好设计。**可能...
C语言
70,039
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章