题目描述
给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。
输入
输入只有1组数据。
输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。
输出
删除输入的短字符串(不区分大小写)并去掉空格,输出。
样例输入 Copy
in
#include
int main()
{
printf(" Hi ");
}
样例输出 Copy
#clude
tma()
{
prtf("Hi");
}
提示
注:将字符串中的In、IN、iN、in删除。
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <vector>
#include <queue>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char** argv) {
string del;
string s, temp;
cin >> del;
getchar();
for(int i = 0; i < del.length(); i++) {//把要删除的那部分变小写
if(del[i] >= 'A' && del[i] <= 'Z') del[i] += 32;
}
while(getline(cin, s)) {
temp = s;//拷贝一份,最后输出拷贝这份
for(int i = 0; i < s.length(); i++) {//将原来这份变小写
if(s[i] >= 'A' && s[i] <= 'Z') s[i] += 32;
}
int k = 0;
for(int i = 0; i < s.length(); i++){
int flag = 1;
if(s[i] == del[k]){//第一个字符相等
for(int w = 0; w < del.length(); w ++){
if(del[w] != s[w + i]){
flag = 0;
break;
}
}
if(flag){//完全相等则跳过这部分
i += del.length() - 1;
}else{//不相等就输出
if(temp[i] != ' '){
cout << temp[i];
}
}
}else{//第一个字符不等
if(temp[i] != ' '){
cout << temp[i];
}
}
}
cout << endl;
}
return 0;
}
本文介绍了一种使用C++处理字符串的方法,通过实例演示了如何从一个字符串中删除特定子串,包括忽略大小写的情况。文章详细展示了代码实现过程,包括读取目标字符串、转换为小写以及遍历检查并删除匹配的子串。
415

被折叠的 条评论
为什么被折叠?



