第15周 oj (FINAL)Problem M: 字符串的修改(串)
2016-12-12 20:45
141 查看
问题及代码:
运行结果:
![](http://img.blog.csdn.net/20161212204401616?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3h5MjAxNjU4NTAzMTI1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
知识点总结:.......
学习心得:最后一个题果然难啊,努力了半天编不出来....代码是参考的同学的(变量设的就不想看...).....功力不够啊.....
/*Copyright(c)2016,烟台大学计算机学院 all rights reserved. 作者:曹欣宇 指导教师:贺利坚 完成日期:2016年12月12日 题目描述 一个字符串s、一个字符串t,判断t是否是s的子串, 若是则将s中所有出现了t串的地方换成指定的字符或字符串p,若不是,则输出NO 输入 一个字符串s、一个字符串t,要换的字符或字符串 输出 输出修改后的s串 样例输入 asdfasdf 132 saf 样例输出 NO */ #include <stdio.h> #include <string.h> int main() { int i=0,j,p=0,u=0,o,g,x,d; char a[80],b[80],c[80]; gets(a); gets(b); gets(c); while(a[i]!='\0') { x=1; o=i; for(j=0;j<strlen(b);j++) { if(a[i]==b[j]) p++; i++; } i=o; if(p==strlen(b)) { u=1; j=0; if(strlen(b)==strlen(c)) for(j=0;j<strlen(b);j++) { a[i]=c[j]; i++; } else if(strlen(b)>strlen(c)) for(j=0;j<strlen(a);j++) { if(x) for(g=0;g<strlen(c);g++) { a[i]=c[g]; i++; x=0; j=g; } a[i]=a[i+strlen(b)-strlen(c)]; i++; } else if(strlen(b)<strlen(c)) for(j=0;j<strlen(c);j++) { d=strlen(c)-strlen(b); if(x) for(g=strlen(a);g>i+d;g--) { a[g+1]=a[g]; x=0; } a[i]=c[j]; i++; } } p=0; i=o; i++; } if(u) printf("%s", a); else printf("NO\n"); return 0; }
运行结果:
知识点总结:.......
学习心得:最后一个题果然难啊,努力了半天编不出来....代码是参考的同学的(变量设的就不想看...).....功力不够啊.....
相关文章推荐
- 第15周 oj Problem G: 将字符串插入到另一个字符串的指定位置(串)
- 第15周 oj Problem H: 判断字符串是否为回文
- 第15周 oj Problem A: 字符串处理new
- 第15周 oj Problem F: 将字符串格式化后输出(串)
- 第15周 oj Problem D: C语言习题 字符串长度
- 第15周 oj Problem K: 包含B的字符串
- 第15周 oj Problem L: 字符串替换(串)
- 第15周 oj Problem E: 写一函数,将两个字符串连接
- 第15周 oj Problem I: 统计字符串种类
- C语言OJ项目参考(2290)字符串的修改
- 第15周OJ实践2 字符串分段
- 字符串排序:oj Problem C: 国家排序
- 第15周OJ实践5 写一函数,将两个字符串连接
- 第15周OJ实践11 包含B的字符串
- 第15周 oj Problem B: 字符串分段(串)
- 第15周OJ实践10 字符串比较
- 第15周OJ实践4 字符串长度
- 第15周OJ实践3 字符串逆序输出
- 第十五周OJ——字符串的修改
- 第15周 oj Problem J: C语言习题 字符串比较