首页 > 学院 > 开发设计 > 正文

1168_字符串的查找删除

2019-11-11 01:32:35
字体:
来源:转载
供稿:网友
// 1168_字符串的查找删除.cpp : 定义控制台应用程序的入口点。//题目1168:字符串的查找删除//时间限制:1 秒内存限制:32 兆特殊判题:否提交:5244解决:2155//题目描述://给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串。//输入://输入只有1组数据。//输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止。//输出://删除输入的短字符串(不区分大小写)并去掉空格,输出。//样例输入://in//#include //int main()//{//// PRintf(" Hi ");//}//样例输出://#clude//tma()//{//// prtf("Hi");//}//提示://注:将字符串中的In、IN、iN、in删除。#include "stdafx.h"#include "stdio.h"#include "iostream"#include "string"#include "algorithm"using namespace std;int main(){ string a,b; char temp[1000]; cin>>a; transform(a.begin(),a.end(),a.begin(),::toupper); getchar(); while(getline(cin,b)){ int j = 0; for(int i = 0;i<b.length();i++){ if(b[i]==' ') continue; else temp[j++] = b[i]; } temp[j] = '/0'; string c(temp); string d = c; transform(c.begin(),c.end(),c.begin(),::toupper); for(int i = 0;i<=((int)c.length()-(int)a.length());i++){ int x = c.length() - a.length(); if(c.substr(i,a.length()) == a){ d.erase(i,a.length()); c.erase(i,a.length()); i--; } } cout<<d<<endl; } return 0;}/*1.transform(a.begin(),a.end(),a.begin(),::toupper);对string型转化为大写字母, 如果是char *则应对每个字母用toupper函数2.string类型的length()函数返回的是无符号数, 所以若 a = "xy" ,b = "x",则b.length() - a.length() 答案不是-13.string的erase函数4.其实可以直接用str的find函数: string st2("aabcbcabcbabcc"); string str1("abc"); cout << st2.find(str1, 2) << endl;*/
上一篇:移动距离

下一篇:移动距离

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表