将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换为t2所指字符串
来源:互联网 发布:淘宝达人推广费多少钱 编辑:程序博客网 时间:2024/05/16 05:37
题目
将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换为t2所指字符串。
分析:
1.s是源字符串
2.t1为指定字符串,需要在s中找一致的字符串,要找到最后一次完全匹配的字符串
3.t2是所要替换的字符串
代码如下:
/*将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换为t2所指字符串。*/#include <stdio.h>#include <string.h>void fun(char *s,char *t1,char *t2){ int len1; int len2; int len3; int i,j; // 循环变量 int t=0; int k=0; int w; int x=0; int c[10]={0}; char temp[100]; len1=strlen(s); len2=strlen(t1); len3=strlen(t2); /* 找出与字符串t1相同的字符串,并记录好位置 */ for(i=0;i<len1;i++) { for(j=0;j<len2;j++) { if(s[i+j] == t1[j]) { t++; } } if(t==len2) // 如果t的值和len2相等,则说明字符串匹配成功 { c[k]=i; if(0==i) // 如果是第一个就出现相同字符串,将其存-1 { c[k]=-1; // 便于检查相同字符串是否只是第一个 } k++; } t=0; // 清零,继续进行下一次匹配 } for(k=9;k>=0;k--) // 找出最后一次出现的 所要查找的字符串位置 { if(c[k]!=0) { w=c[k]; if(-1 == c[k]) { w=0; // 说明第一个就是相同字符串,需要替换,下标要变成0 } break; } } /* t1所指字符串相同的子串替换为t2所指字符串 */ for(i=0;i<100;i++) { if(i==w) { for(j=0;j<len3;j++) { temp[x]=t2[j]; x++; } i=i+len2; } temp[x]=s[i]; x++; } strcpy(s,temp);}void main(){ char s[100]; char t1[20]; char t2[20]; puts("请输入源字符串:"); gets(s); puts("请输入所要查找的字符串:"); gets(t1); puts("请输入所要替换的字符串:"); gets(t2); fun(s,t1,t2); puts(s); // 输出字符串}
结果为:
与大家分享,有问题可以一起交流。
0 0
- 将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换为t2所指字符串
- 将S所指的字符串中下标为偶数同时ASCⅡ值为奇数的字符删除,所指串中剩余的字符形成新的串放在t所指的数组中
- 将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中
- 字符串编程,将字符串S中出现的子串T1用字符串T2替代。
- 将ss所指字符串中所有下标为奇数位置上的字母转换为大写
- 判断s所指的字符串是否是回文数
- 如何输出字符串指针所指的地址
- 编写函数void fun(char *s),其功能是将s所指的字符串逆序存放
- 第四次编程练习:字符串编程,将字符串S中出现的子串T1用字符串T2替代。
- 第二周 任务七 判断S所指的字符串是否回文
- C#--第2周实验--任务7--编写一个控制台应用--判断S所指的字符串是否回文(即顺读和逆读相同的字符串)
- 19. 将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符和非数字字符串原有的先后次序。
- 请编写一个函数fun(char *s),其功能是:将s所指字符串中所有的字母改写成该字母的下一个字母,若是z字母,则改为a字母,大、小写保持不变。
- JS 中this 所指向的对象
- 将S 所指字符串中的数字移到字符串后面,相对次序不变。例:s=“a1b2c3d4efg” fun(s)="abcdefg1234"
- 输出指针所指的地址
- P279_1012 用了典型的冒泡法对字符串排序。侧重指针应用,交换指针所指向的地址。
- 替换子字符串(将字符串中的某个子字符串替换为给定的字符串)
- 学生信息的添加与查询(Java集合框架)
- Java学习笔记:String类
- 5个强大的Java分布式缓存框架推荐
- Python求职之路
- TCP三次握手,四次握手
- 将s所指字符串中最后一次出现的与t1所指字符串相同的子串替换为t2所指字符串
- 利用正则表达式判断输入内容是否全中文
- 【机房重构】-缺少程序集引用
- 强化学习进阶 第六讲 策略梯度方法
- 关于AutoCAD的dwg文件操作学习
- order by
- 初学最长上升子序列心得
- Android Fragment使用
- 最短路径问题