您的位置:首页 > 其它

10-2. 删除字符串中的子串(20)

2015-02-03 20:16 225 查看

输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。
输入格式:

输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。

输出格式:

在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。

输入样例:
Tomcat is a male ccatat
cat

输出样例:
Tom is a male

版本一:C语言编写

#include<stdio.h>
#include<string.h>
int main()
{
	char str1[81],str2[81];
	char temp;
	int nstr2,i,j;
	gets(str1);
	gets(str2);
	for(;;)
	{
       char *p=strstr(str1,str2);
	   nstr2=(int)strlen(str2);
	   if(p)
	   {
		   int left=strlen(p)-nstr2;
		   for(i=0;i<left;i++)
			   p[i]=p[i+nstr2];
		   str1[strlen(str1)-nstr2]='\0';
	   }
	   else
	   {
			printf("%s",str1);
			break;
	   }
	}
	return 0;
}

版本二:C++语言编写

[code]#include<iostream>
#include<string>
using namespace std;
int main()
{
	string s1;
	string s2;
	getline(cin,s1);
        getline(cin,s2);
	int m=s2.length(); 
	int pos=s1.find(s2);
	while(pos!=-1)
	{
	    s1.erase(pos,m);
	    pos=s1.find(s2);
	}
	cout<<s1;
	return 0;
}


[/code]

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: