删除第一个字符串出现的第二个字符串

题目描述:

删除第一个字符串中出现的第二个字符串,比如s1:ababaabb, s2:aba,输出应为:baabb

#include <iostream>
#include <string>
using namespace std;

int main(){
    string s1, s2;
    while(cin >> s1){
        char c = getchar();
        cin >> s2;
        int pos = -1;
        while((pos = s1.find(s2)) >= 0){
            //cout << pos << endl;
            s1.erase(pos, s2.size());
            pos = -1;
        }
        cout << s1 << endl;
    }
    return 0;

}
s1.find(s2): return the position where s2 appear in s1. eg:s1 = "ababaabbab", s2 = "aab", and the result is 4;
s1.find(ch): return the position where char ch appear in s1.
s1.erase(pos, size): delete the char form pos to pos + size - 1; And return the s1 changed.
s1.erase(pos): delete from the pos until the end.

原文地址:https://www.cnblogs.com/zhuobo/p/10506655.html

时间: 2024-10-20 12:49:02

删除第一个字符串出现的第二个字符串的相关文章

两种方法判断一个字符串是否为另外一个字符串旋转之后的字符串。(C语言)

例如:给定s1 = AABCD和s2 = BCDAA,返回1给定s1 = abcd和s2 = ACBD,返回0. AABCD左旋一个字符得到ABCDAAABCD左旋两个字符得到BCDAA 第一种:通过其中一个字符串向左移动确定第二个字符串 #include<stdio.h> #include<string.h> void left_move(char *str, int k) { while (k != 0) { char *cur = str;//必须需要另一个指针存储首地址 c

从第一个字符串中删除第二个字符串中出现过的所有字符

// 从第一个字符串中删除第二个字符串中出现过的所有字符 #include <stdio.h> char* remove_second_from_first( char *first, char *second ) { if( first == NULL || second == NULL ) { printf("first or/and second should not be NULL\n"); return NULL; } char flag[256]={0}; ch

C 一个字符串有三段,第一段原样输出,第二段为要输出字符串的长度,第三段为根据第二段长度补齐第一段

例如:输入abc 11 12,输出abc12121212 #include<stdio.h> #include<string.h> int main(){ char a[100],b[100]; int len=0,i,j; int flag,t; gets(a); for(i=0;a[i]!=' ';i++){ b[i]=a[i]; } t=i; for(j=i+1;a[j]!=' ';j++){ len=len*10; len=len+a[j]-'0'; } flag=j+1;

【C语言探索之旅】 第一部分第四课第二章:变量的世界之变量声明

内容简介 1.课程大纲 2.第一部分第四课第二章:变量的世界之变量声明 3.第一部分第四课第三章预告:变量的世界之显示变量内容 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算符 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理

输出是一个文本文件,每一行第一个数字式行标,第二个数字是输入文件中每一行除行标外数字的平均值

有时候你会遇到这样的问题:你有一个表格,给出了每个人在十二月,一月和二月的收入. 表格如下: 姓名 一月 二月 三月 楚乔     200   314   3500 宇文玥     2000  332   2300 烟熏柿子    6000  333   680 淳儿    5000  333   789 洛河     30    12    2900 现在需要知道每个人这三个月的收入平均值,那么你就需要将表格中一行代表收入的数字相加除以月数.下面请编写MR程序解决这个简单的问题. 输入只包含一

Python学习-第二天-字符串和常用数据结构

Python学习-第二天-字符串和常用数据结构 字符串的基本操作 def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的拷贝 print(str1.capitalize()) # Hello, world! # 获得字符串变大写后的拷贝 print(str1.upper()) # HELLO, WORLD! # 从字符串中查找子串所在位置 print(str1.find('o

《Python CookBook2》 第一章 文本 - 改变多行文本字符串的缩进 &amp;&amp; 扩展和压缩制表符(此节内容待定)

改变多行文本字符串的缩进 任务: 有个包含多行文本的字符串,需要创建该字符串的一个拷贝.并在每行行首添加或者删除一些空格,以保证每行的缩进都是指定数目的空格数. 解决方案: # -*- coding: UTF-8 -*- ''' Created on 2014年8月29日 path:E:\Se\core_python\[email protected]: Administrator function: 改变多行文本字符串的缩进 ''' def reindent(s,numSpaces): lea

Java 线程第三版 第一章Thread导论、 第二章Thread的创建与管理读书笔记

第一章 Thread导论 为何要用Thread ? 非阻塞I/O I/O多路技术 轮询(polling) 信号 警告(Alarm)和定时器(Timer) 独立的任务(Task) 并行算法 第二章 Thread的创建与管理 一.什么是Thread ? Thread是所在主机执行的应用程序任务(task). 只有一个线程的例子: public class Factorial { public static void main(String[] args) { int n = 5; System.ou

python第二周 字符串

字符串是一个有序的字符的集合,用来存储和表现基于文本的信息,python的内置数据结构之一.字符串是多个字符组成的序列,因此支持序列的相关操作. 支持的操作有: 1. 通过索引来访问 >>> s = 'this is a test string' >>> len(s)  #len()函数可以得到字符串的长度 21 得到字符串的长度以后,就可以根据索引来访问字符串的内容. >>>s[0]   #正向索引 't' >>>s[-1]  #反