zcmu 4925(细节+字符串+输入格式)

4925: 字符串的查找删除

时间限制: 1 Sec  内存限制: 32 MB
提交: 41  解决: 17
[提交][状态][讨论版]

题目描述

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

输入

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

输出

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

样例输入

in #include int main() { printf(" Hi "); }

样例输出

#clude tma() { prtf("Hi"); }

提示

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

来源

数据结构高分笔记

[提交][状态][讨论版]

心得:1、数组长度没有给出,要用string;

2、每行第一个输入要输入字符,并且判断字符是不是\n,如果是,就输出,因为getline函数是以\n为每行输入的结束符号,

但是字符串中不输入\n.

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
using namespace std; 
int is_y(char a,char b)
{
	if(a=='i'&&b=='n') return 1;
	if(a=='i'&&b=='N') return 1;
	if(a=='I'&&b=='n') return 1;
	if(a=='I'&&b=='N') return 1;
	return 0;
}
int main(void)
{
	string str,s1;
	char ch;
	while(ch=getchar(),ch!=EOF)
	{
		
		s1.clear();
		if(ch=='\n') 
		{
			cout<<endl;
			continue;
		}
		else 
		{
			getline(cin,str);
			str=ch+str;
		}
		int l=str.size(),i,fg=0;
		for(i=0;i<l;i++)
		{
			if(str[i]==' ') continue;
			else if(is_y(str[i],str[i+1]))
			{
				i++;continue;
			}
			else s1.push_back(str[i]),fg=1;
		}
		if(fg) cout<<s1<<endl;
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_41829060/article/details/82792515
今日推荐