//在s串中查找与s1相匹配的字符串,找到后用s2将s中与s1相配的串替换掉
#include<stdio.h>
#include<string.h>
void replace(char *s,char *s1,char *s2);
int main(int argc,char *argv[])
{
char s[256],s1[256],s2[256];
if(argc!=4)
{
printf("Usage:%s 源串 查找串 替换串\n",argv[0]);
exit(-1);
}
memset(s,sizeof(s),0x00);
memset(s1,sizeof(s1),0x00);
memset(s2,sizeof(s2),0x00);
strcpy(s,argv[1]);
strcpy(s1,argv[2]);
strcpy(s2,argv[3]);
replace(s,s1,s2);
printf("%s\n",s);
}
void replace(char *s,char *s1,char *s2)
{
char *p,*sp,*dp;
int len,cnt;
for(;;)
{
if((p=strstr(s,s1)) == NULL) return;
len = strlen(s2)-strlen(s1);
if(len)
{
//查找串和替换串长度不相同,需移位动作
sp=p+strlen(s1); //从sp所指位置移
dp=sp + len; //移到dp所指位置
cnt = strlen(sp) + 1; //所要移动的长度
memmove(p+strlen(s1)+len,p+strlen(s1),cnt);
}
memcpy(p,s2,strlen(s2));
}
}
分享到:
相关推荐
c语言基础 c语言基础_c语言编程基础之字符串操作_查找常用字符串
c语言基础 c语言基础_c语言编程基础之字符串操作示例_数字转换成十六进制数
C语言中,字符的操作有多种方法,这里主要是特有的字符串库函数进行操作,简化编程过程,增强学生对字符串及字符操作的理解。
C语言编程-编写函数fun求一个字符串的长度,在main函数中输入字符串,并输出其长度;
C语言编程-编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数;
c语言中所有字符串函数使用手册,包含了在c语言编程中所有需要使用到的字符串函数
C语言中的字符串数组和字符串指针.pdf
c语言基础 c语言基础_c语言编程基础之二维字符串数组示例_Bigtram分词
c语言基础 c语言基础_c语言编程基础之哈希表示例_同构字符串
c语言 c语言_c语言编程基础之leetcode题解第8题字符串转整数
KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。 一.简单匹配算法 先来看一个简单匹配算法的函数: ...
探究C语言中的字符串.pdf
有两个字符串,各有10个字符,是编程完成如下功能: (1)分别找出两个字符串中最大的字符元素; (2)将两字符串对应位置元素逐个比较,并统计输出两个字符串对应元素大于、小于和等于的次数。 2. 销售员业绩管理程序 ...
计算机二级c语言资料 计算机二级c语言资料_计算机二级c语言编程练习题之把字符串逆置
c语言基础 C语言基础_C语言编程基础之Leetcode编程题解之第28题找出字符串中第一个匹配项的下标
计算机二级c语言资料 计算机二级c语言资料_计算机二级c语言编程练习题之删除字符串中的指定字符
计算机二级c语言资料 计算机二级c语言资料_计算机二级c语言编程练习题之删除字符串指定下标的字符
计算机二级c语言资料 计算机二级c语言资料_计算机二级c语言编程练习题之判断字符串是否为回文
C语言-字符串函数大全和详解,基本上包含了所有的C语言的字符串处理函数,而且讲解很详细
包含了很多C语言字符串和数字转换函数,有详细的代码解释和案例