7-29 删除字符串中的子串 (20分)

这是一道基础编程题,要求删除字符串S1中所有出现的子串S2。输入2个字符串,输出删除子串S2后的S1。可以使用C++的string::find函数或string.h库中的strstr等函数来实现。题目提供错误理解示例,并强调了正确操作是删除完整子串,而非单个字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

7-29 删除字符串中的子串 (20分)

  • 基础编程题

题目:

输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。

输入格式:

输入在2行中分别给出不超过80个字符长度的、以回车结束的2个非空字符串,对应S1和S2。

输出格式:

在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串。

输入样例:

Tomcat is a male ccatat
cat

输出样例:

Tom is a male 

思路

  • 做错了😭以为是s2中所有出现过的字母s1中都需要删除
  • 其实是删除子串s2
  • 使用string.h中的strstr,strcpy,strcat函数
  • 或者使用string.find()

作为对比的题:L1-011 A-B

学习 string.h 中的字符串函数

  • char *strstr( const char *str1, const char *str2 )

    • 功能:返回字符串中首次出现子串的地址。若str2是str1的子串,则返回str2在str1的首次出现的地址;如果str2不是str1的子串,则返回NULL
  • char *strcpy( char *str1, const char *str2 )

    • 功能:把从str2地址开始且含有NULL结束符的字符串复制到以str1开始的地址空间
  • char *strcat( char *str1, const char *str2 )

    • 功能:把str2所指向的字符串(包括“\0”)复制到str1所指向的字符串后面(删除str1原来末尾的“\0”)。要保证str1足够长,以容纳被复制进来的*str2。

学习 c++ string 中的 find() 函数 :

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值