标签:
题目1168:字符串的查找删除
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:5092
解决:2097
给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。
输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。
删除输入的短字符串(不区分大小写)并去掉空格,输出。
in #include int main() { printf(" Hi "); }
#clude tma() { prtf("Hi"); }
注:将字符串中的In、IN、iN、in删除。
#include<iostream> #include<stdio.h> #include<queue> #include<string> #include<string.h> #include<algorithm> #include<ctype.h> using namespace std; int main() { char str[101]; gets(str); string a=str;//将其保存在a中 for(unsigned int i=0; i<a.size(); i++) { a[i]=tolower(a[i]);//将a中的字符全部改为小写 } while(gets(str))//输入长字符串 { string b=str,c=b; for(unsigned int i=0; i<b.size(); i++) { b[i]=tolower(b[i]); } int t=b.find(a,0);//在b中查找a的位置 while(t!=string::npos)//若查找成功,则重复循环 { c.erase(t,a.size());//删除c中相应位置字符,c为原串 b.erase(t,a.size()); t=b.find(a,t);//继续查找b中下一个出现字符串a的位置 } t=c.find(‘ ‘,0); while(t!=string::npos) { c.erase(t,1); t=c.find(‘ ‘,0); }//删除c中所有的空格 cout<<c<<endl; } return 0; }
标签:
原文地址:http://www.cnblogs.com/zhuoyuezai/p/5813745.html