zcmu--4925: 字符串的查找删除(字符串处理函数)

4925: 字符串的查找删除

Time Limit: 1 Sec  Memory Limit: 32 MB
Submit: 16  Solved: 7
[Submit][Status][Web Board]

Description

给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。

Input

输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。

Output

删除输入的短字符串(不区分大小写)并去掉空格,输出。

Sample Input

in
#include 
int main()
{

printf(" Hi ");
}

Sample Output

#clude
tma()
{

prtf("Hi");
}

HINT

注:将字符串中的In、IN、iN、in删除。

Source

数据结构高分笔记

【分析】注意!!!本题是有输入的!!!而且!!不区分大小写!!

   所以,可以定义一个字符串作为中转串,将其都先转换为大写或小写字母,然后进行查找和删除。

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string s1,s2;
	getline(cin,s1);
	int len=s1.length();
	for(int i=0;i<len;i++)
		s1[i]=tolower(s1[i]);
	while(getline(cin,s2))
	{
		string s3=s2;
		int l=s2.length();
		for(int i=0;i<l;i++)
			s3[i]=tolower(s3[i]);
		int pos=s3.find(s1);
		while(pos!=string::npos)
		{
			s3.erase(pos,s1.length());
			s2.erase(pos,s1.length());
			pos=s2.find(s1);
		}
		pos=s2.find(' ');
		while(pos!=string::npos)
		{
			s2.erase(pos,1);
			pos=s2.find(' ');
		}
		cout<<s2<<endl;
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_38735931/article/details/82353171