10-2. 删除字符串中的子串(20)
来源:互联网 发布:淘宝网卖家中心 - 首页 编辑:程序博客网 时间:2024/05/22 06:44
题目:输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。
输入格式:输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。
输出格式:在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。
输入样例:
Tomcat is a male ccatat
cat
输出样例:
输入格式:输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。
输出格式:在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。
输入样例:
Tomcat is a male ccatat
cat
输出样例:
Tom is a male
-------------------------------------------------------------------------------------
C语言做这个题时,大家想到的是用字符串的库函数,我们啥也不用,全自己写函数解答,也是一种练习。
#include <stdio.h>int StrLength(char *p) //用于计算一个字符串长度的函数 {int i=0;while(p[i]!='\0'){i++;}return i;}int StrSearch(char *p,char *q) // 计算字符串P里第一个含有字符串q位置数的函数 { int i,j,real=1,flag=0; int m=StrLength(p);int n=StrLength(q);for(i=0;i<m-n+1;i++){if(p[i]==q[0]){for(j=1;j<n;j++){if(q[j]==p[i+j])real++;}if(real==n)return i; //如果字符串P里含有字符串q,则返回第一个q前面的字符数 elsereal=1;}}return -1; ////如果字符串p里不含有字符串q,则返回-1 }void StrDelete(char *p,char *q) //把字符串p中的字符串q全部删除的函数 {int x,i,j,m,n;m=StrLength(p);n=StrLength(q);x=StrSearch(p,q);while(x!=-1) {for(i=x;i<m-n+1;i++) {p[i]=p[i+n];}m=StrLength(p);x=StrSearch(p,q);}}void GetStr(char *p) //获取字符串的函数 {int i=0;char c;while(1){scanf("%c",&c);if(c=='\n'){p[i]='\0';break;}elsep[i]=c;i++;}}int main(){char str01[81],str02[81];GetStr(str01);GetStr(str02);StrDelete(str01,str02);printf("%s\n",str01);return 0;}
0 0
- 10-2. 删除字符串中的子串(20)
- 10-2. 删除字符串中的子串(20)
- 10-2. 删除字符串中的子串(20)
- 10-2. 删除字符串中的子串(20)
- 10-2. 删除字符串中的子串(20)
- 10-2. 删除字符串中的子串(20)
- 10-2. 删除字符串中的子串(20)
- 10-2. 删除字符串中的子串(20)
- 10-2. 删除字符串中的子串(20)
- 10-2. 删除字符串中的子串(20)
- 删除字符串中的子串(20)
- 删除字符串中的子串
- 删除字符串中的子串
- 删除字符串中的子串
- 删除字符串中的子串
- 删除字符串中的子串
- 删除字符串中的子串
- 删除字符串中的子串
- Python的getattr(),setattr(),delattr(),hasattr()
- Constructing Roads
- UI初级-笔记
- hdu5375(格雷码问题+简单DP)
- 类的大小——sizeof 的研究(1)
- 10-2. 删除字符串中的子串(20)
- Wechat公众平台开发
- 端到端的地址翻译(虚拟地址是怎样取到相应高速缓存的数据的?)
- 多线程之多窗口卖票&线程之间的通信
- 29-HTML-11-HTML(画中画标签)
- 开放GIS标准OGC之路(3)之 WFS初探
- TableView头视图
- uva11752(合数)
- 29-HTML-12-HTML(表单组件-input)