题目:

输入两个字符串,从第一个字符串中删除第二个字符串中的所有字符
比如输入第一个字符串:“They are students."
             第二个字符串: "aeiou"
删除之后的第一个字符串变成"The r stdnts."


题目分析(思路):

创建三个string类对象 第一个s1第二个str2为题目要求的字符串

第三个str3则用来接收最后需要输出的字符串

循环遍历上面两个字符串 str1 str2

如果str1中出现了str2中的任何一个则跳过看下一个字符 然后将str1中的下一个字符再与str2中的字符进行一一比较

以此类推 相同跳过 str1中没有一个与str2中的字符相同则压入str3中


代码展示:

#include <iostream>
#include <string>
using namespace std;int main() {string str1;string str2;string str3;char n=0,m=0;while (1) {n = getchar();if (n == '\n') {break;}str1.push_back(n);}while (1) {m = getchar();if (m == '\n') {break;}str2.push_back(m);}bool sign = true;string::iterator it1 = str1.begin();string::iterator it2;for (it1;it1 != str1.end();++it1) {for (it2=str2.begin();it2 != str2.end();++it2) {if (*it1 == *it2) {sign = false;break;}}if (sign==true){str3.push_back(*it1);}sign = true;}cout << str3.c_str() << endl;system("pause");return 0;
}

部分代码分析:

while (1) {n = getchar();if (n == '\n') {break;}str1.push_back(n);}

这段代码 ↑ 是输入一个字符串str

bool sign = true;string::iterator it1 = str1.begin();string::iterator it2;for (it1;it1 != str1.end();++it1) {for (it2=str2.begin();it2 != str2.end();++it2) {if (*it1 == *it2) {sign = false;break;}}if (sign==true){str3.push_back(*it1);}sign = true;}

这段代码 ↑ 应该是解这个题目的关键核心

巧妙之处在于定义了一个bool变量 用来标记字符串str2中的其中一字符是否与str1中的其中一个字符相同

相同则标记为false 然后跳出循环 进行str1中下一个字符的判断 以此类推

需要注意的是 在压入str3后 要将标记sign重新置为true

否则上面一步sign被置为false  如果str1中下一个字符与str2中字符没有一个相同 那么也不会被压入str3中

输入两个字符串,从第一个字符串中删除第二个字符串中的字符相关推荐

  1. 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”

    题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符.例如,输入"They are students."和"aeiou",则删除之后的第一个字符串变 ...

  2. 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。 例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”

    1.题目 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符. 例如,输入"They are students."和"aeiou",则删除之后的第一个字 ...

  3. 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入 ”They are students.” 和 ”aeiou” ,则删除之后的第一个字符串变成 ”Thy r stdnts.”

    题目 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符.例如,输入 "They are students." 和 "aeiou" ,则删除之后的第一个 ...

  4. 输入两个字符串,从第一个字符串中删除第二个字符串中所有的字符

    作者:小 琛 欢迎转载,请标明出处 题目: 输入两个字符串,从第一个字符串中删除第二个字符串中所有的字符 例如,输入str1为" They are students." 和str2 ...

  5. python编程—输入两个字符串,从第一字符串中删除第二个字符串中所有的字符

    题目描述: 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符.例 如,输入"They are students."和"aeiou", 则删除之后的第一 ...

  6. C++实现输入两个字符串,从第一字符串中删除第二个字符串中所有的字符

    一定要注意一点就是: char* p是一个指针,根本没分配内存,他指向的"abc123ABC" 是只读的,不能改变,你在下面给他赋值肯定是错的 而char p[]是一个数组,已经分 ...

  7. 【Python】输入两个字符串,在第一字符串中删除第二个字符串中所包含的所有字符...

    s1 = input('s1: ') s2 = input('s2: ') for i in s1:if i in s2:s1 = s1.replace(i,'') print(s1)

  8. c语言代码,输入两个数,输出第一个数到第二个数之间所有的数

    用C语言实现,输入两个数,输出第一个数到第二个数之间包含的所有数 #include <stdio.h> int num(int x, int y); int main() {int a1, ...

  9. 从一个字符串中删除另一个字符串中出现过的字符

    http://blog.csdn.net/walkerkalr/article/details/39001155 定义一个函数,输入两个字符串,从第一个字符串中删除在第二个中出现过的所偶字符串.例如从 ...

最新文章

  1. 整合mybatis——使用纯注解整合、使用Mapper+Mapper.xml整合、使用mybatis.cfg.xml整合
  2. 调度锁解决任务间资源共享问题
  3. python自关联_Django之Mode的外键自关联和引用未定义的Model方法
  4. QSetting介绍
  5. USACO2.2【统计,dp,模拟,位运算】
  6. 前端学习(2153):Vue的终极解决方案
  7. 做自适应网站专业乐云seo_什么叫网站优化-网站建设-SEO优化
  8. 让人兴奋的视差滚动(Parallax Scrolling)效果网站分享
  9. (100)详细描述一个你做过的项目, 面试必问(二十四)(第20天)
  10. Linux基础命令---间歇执行命令watch
  11. eclipse中安装flex插件
  12. Spring+IOC(DI)+AOP概念及优缺点
  13. 如何隐藏所有的导航栏
  14. 数据库备份与快照备份
  15. Linux学习---Day03
  16. 【专题5: 硬件设计】 之 【70.开关电源 之 电感计算例子】
  17. Python关键字keyword
  18. Ubuntu20.04设置WiFi热点
  19. 几个好中的计算机类EI源刊
  20. 微信世界争霸服务器,微信世界争霸小程序进不去游戏怎么办

热门文章

  1. orcale 数据库语句(一)
  2. “苹果Mac OSX系统出现持久开机加载”解决方案
  3. cdrx7拼版工具在哪里_CorelDRAW X7中调和工具的运用
  4. 【考研笔记】数学一 · 高等数学笔记
  5. 快速查快递单号物流,跟踪物流详情
  6. 美容仪上日本亚马逊需要PSE认证METI备案
  7. 深度复盘手机三雄:苹果、小米、华为,为何5G最后留下来的会是华为?
  8. 阿里钉钉、ICBU、CBU、蚂蚁、国际化中台Java后台面经
  9. 猎豹浏览器收藏内容恢复
  10. 修改AIX的内核参数