题目1168:字符串的查找删除
Posted 多思考&&多动手
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题目1168:字符串的查找删除相关的知识,希望对你有一定的参考价值。
题目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; }
以上是关于题目1168:字符串的查找删除的主要内容,如果未能解决你的问题,请参考以下文章