C++中string字符串查找某一子字符串所有出现过的位置,并计数

(可用于招聘软件笔试题中的应用,关于C语言中的该功能复杂度最小的实现以后再补充)
直接上示例代码:

#include <iostream>
#include <string>using namespace std;int main(){string s = "abc abcde abcdefgh";string sub = "abc";int index = 0;int count = 0;while ((index = s.find(sub, index)) < s.length()){count++;index++;}cout << count << endl;return 0;
}

简单说就是利用string类中的find函数,记录查找到的下标,然后再从记录的坐标+1位置开始查找。

提供一个思路,至于查找后用于什么样的用途,要根据题目要求来变换。如,将abc替换成A,则先erase()再insert()。当然这里如果有多少个就替换多少次的话,由于没有替换的字符进行了多次移动,时间复杂度会很高,至于怎么避免,那是另外的问题了。

阿猪米德
2019.08.17于湖北武汉

C++中string字符串查找某一子字符串所有出现过的位置,并计数相关推荐

  1. Swift3.0语言教程查找字符集和子字符串

    Swift3.0语言教程查找字符集和子字符串 Swift3.0语言教程查找字符集和子字符串,在字符串中当字符内容很多时,我们就需要使用到查找字符集或者子字符串的方法.以下我们将讲解3种查找字符集和子字 ...

  2. PHP | 检查字符串中是否存在特定的单词/子字符串

    Given a string and a word/substring, and we have to check whether a given word/substring exists in t ...

  3. 字符串7——重复的子字符串

    字符串7--重复的子字符串 例题 题目链接 题目说明 解题 方法一:枚举 思路与算法 代码 复杂度分析 方法二:字符串匹配 思路与算法 代码 复杂度分析 方法三:KMP 算法 思路与算法 代码 复杂度 ...

  4. c语言 找子字符串,c语言搜索子字符串

    c字符串功能练习: 获取一行字符串,然后,在这行字符串中搜索是否包含一个小字符串 #include #include #define N 100 using namespace std; int re ...

  5. python中string.digits_python学习笔记五:字符串方法

    常用字符串常量: string.digits:包含数字0~9的字符串 string.letters:包含所有字母(大写或小写字符串,在python3.0中,使用string.ascii-letters ...

  6. c语言字符串中取最大字符串,使用C语言提取子字符串及判断对称子字符串最大长度...

    先来看一个使用C语言从字符串中提取子字符串的基本方法总结: #include /*处理中文字符*/ /*遍历字符串,非ASCII字符读取2个字节,ASCII读取一个字节,获取字符串长度*/ int S ...

  7. python中uppercase是什么意思_python判断大小写并转换_python中string模块相关方法(大小写转换,字符串条件判断)....

    string模块主要包含关于字符串的处理函数,在这里列举经常会使用的一些函数. 在例如获取随机密码等之类的题时可能会用到这类函数 1.string.ascii_letters 获取所有ascii码中字 ...

  8. C#中string.format用法详解 格式字符串

    string.Format对C#字符串格式化 String.Format 方法的几种定义: String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 ...

  9. Java 中String 类的不可变性与字符串拼接解析

    目录 一.String 类是不可变的 1.1 不可变的原因 1.2 不可变的好处 二.字符串的"+" 拼接 2.1 官方解释 2.2 append() 方法 2.3 具体实现 2. ...

最新文章

  1. 转程序员,都去写一写前端代码吧
  2. python在日常工作处理中的应用-python在工作中的应用场景介绍
  3. Delphi写的等待进程运行结束函数
  4. Min_25筛有关求解次小质因子
  5. 计算机会计简要回答会计电算化的作用,会计电算化在学校财务管理中的作用
  6. adb卸载手机内置软件
  7. SQL语句的基础教程(一)
  8. imx6 android gadget,imx6q安卓启动失败显示Suspending console(s)(已解决)
  9. centos6 yum 阿里源 配置
  10. linux bond双活跟主备的区别,“双活中心”比“主备”方式更可靠
  11. 用python做头像_如何利用python制作微信好友头像照片墙?
  12. 华为5G CPE是做什么用的?
  13. photoshop 去掉背景
  14. 干得漂亮!微信封禁大量色情账号
  15. 如何提升计算机的网络性能,技术丨怎样提升电脑性能?
  16. 第七节 设计电路与学书法学绘画并没有差别
  17. html微软雅黑无效,求让所有浏览器支持微软雅黑的方法_html/css_WEB-ITnose
  18. 广义相对论-学习记录16-第七章-史瓦西解与粒子运动1
  19. String Art利用matlab用直线作画
  20. Django 学习 之ORM多表操作

热门文章

  1. MarkdownPad的livepreview预览无效,显示this view has crashed
  2. fuchsia appmgr分析
  3. sql 累计占比_sql 面试题(难题汇总)
  4. 数据分析常见SQL面试笔试题
  5. 抽奖随机滚动_怎么用EXCEL做个抽奖器
  6. QR法求解特征值特征向量
  7. 2021-08-20
  8. excel 多列内容合并为一个单元格
  9. 判断手机设备是否支持5G无线频段
  10. RabbitMQ第二话 -- Springboot基于四种Exchange(Direct、Fanout、Topic、Heders、延时队列)的实现和多虚拟主机下的生产消费者实现