参照:C++基础-string截取、替换、查找子串函数

1、字符串查找

 s.find(s1)         //查找s中第一次出现s1的位置,并返回(包括0)

 s.rfind(s1)        //查找s中最后次出现s1的位置,并返回(包括0)

 s.find_first_of(s1)       //查找在s1中任意一个字符在s中第一次出现的位置,并返回(包括0)

s.find_last_of(s1)       //查找在s1中任意一个字符在s中最后一次出现的位置,并返回(包括0)

s.fin_first_not_of(s1)         //查找s中第一个不属于s1中的字符的位置,并返回(包括0)

s.fin_last_not_of(s1)         //查找s中最后一个不属于s1中的字符的位置,并返回(包括0)

2、字符串截取

s.substr(pos, n)    //截取s中从pos开始(包括0)的n个字符的子串,并返回

s.substr(pos)        //截取s中从从pos开始(包括0)到末尾的所有字符的子串,并返回

3、字符串替换

 s.replace(pos, n, s1)     //用s1替换s中从pos开始(包括0)的n个字符的子串

4、代码测试(字符串操作.cpp)

#include <iostream>
using namespace std; /* 字符串查找 */
void findSubString(string str){
// find()函数的使用,返回查找对象第一次出现的位置.
cout << str.find("fs") << endl;
// rfind()函数的使用,返回查找对象最后出现的位置
cout << str.rfind("s") << endl;
} /* 字符串截取 */
void getSubString(string str){
// substr(pos)函数的使用,返回从pos开始(包含pos位置的字符)所有的字符
cout << str.substr(2) << endl;
// substr(pos,n),返回从pos开始(包含pos位置的字符)n个字符
cout << str.substr(2, 2) << endl;
} /* 字符串替换 */
void replaceString(string str){
// replace(pos,n,s1),用s1替换从pos开始的n个字符
cout << str.replace(0,2,"xiaoming") << endl;
} int main()
{
string str = string("sdfsf");
// findSubString(str);
// getSubString(str);
replaceString(str);
return 0;
}

5、字符替换(用x替换字符串中所有的a.cpp)

#include <iostream>
using namespace std; /* 用x替换a */
void replaceAWithX(string str){
int pos;
pos = str.find("a");
while(pos != -1){
// str.length()求字符的长度,注意str必须是string类型
str.replace(pos,string("a").length(),"x");
pos = str.find("a");
} cout << str << endl;
} int main()
{
string str = string("fsafsdf");
replaceAWithX(str);
return 0;
}

C++ 中字符串查找、字符串截取、字符串替换的更多相关文章

  1. ios 字符串处理:截取字符串、匹配字符串、分隔字符串

    1.截取字符串 NSString*string =@"sdfsfsfsAdfsdf";string = [string substringToIndex:7];//截取掉下标7之后 ...

  2. 字符串函数(strcpy字符串拷,strcmp字符串比较,strstr字符串查找,strDelChar字符串删除字符,strrev字符串反序,memmove拷贝内存块,strlen字符串长度)

    1.strcpy字符串拷贝拷贝pStrSource到pStrDest,并返回pStrDest地址(源和目标位置重叠情况除外) char *strcpy(char *pStrDest, const ch ...

  3. js获取(包括中文)字符串长度与截取字符串

    /** * @param begin 截取开始的索引 * @param num 截取的长度 */ //截取字符串(包括中文) function SetString(str, len) { var st ...

  4. js常用方法和检查是否有特殊字符串和倒序截取字符串

     js常用方法demo <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...

  5. lua中 string.find(查找获取字符串) string.gsub(查找替换字符串) string.sub(截取字符串)

    > aaa='/p/v2/api/winapi/adapter/lgj'> print(string.find(aaa, "^/.+/adapter/(.*)"))1 ...

  6. linux中shell,awk,sed截取字符串方法总结

    转自:http://www.cnblogs.com/kinga/p/5772566.html Shell 第一种: ${parameter%word} 最小限度从后面截掉word${parameter ...

  7. 实现一个字符串匹配算法,从字符串 H 中,查找 是否存在字符串 Y ,若是存在返回所在位置的索引,不存在返回 -1(不基于indexOf/includes方法)

    /** 1.循环原始字符串的每一项,让每一项从当前位置向后截取 H.length 个字符, 然后和 Y 进行比较,如果不一样,继续循环:如果一样返回当前索引即可 **/ function myInde ...

  8. xml中的<if>和截取字符串

    <#if (envPollute=='1')>√</#if><#if (envPollute=='0')>√</#if>${as_title?subst ...

  9. SQL--去除字符串空格、截取字符串

  10. BAT批处理中的字符串处理详解(字符串截取)

    BAT批处理中的字符串处理详解(字符串截取)   BAT批处理中的字符串处理详解(字符串截取 批处理有着具有非常强大的字符串处理能力,其功能绝不低于C语言里面的字符串函数集.批处理中可实现的字符串处理 ...

随机推荐

  1. 简单CSS的应用

    今天主要学习了一些关于CSS的内容 通过css调试了一个简单的表格 <%@ page language="java" contentType="text/html; ...

  2. QQ常用表情

    以下表情均为QQ官方表情原图,版权归QQ所有,禁止用于商业用途. ![3nEdY9.png](https://s2.ax1x.com/2020/02/21/3nEdY9.png) ![3nEaFJ.p ...

  3. java-标准输入

    package InputDemo; public class InputDemo1 { public static void main(String[] args) { /* 1. java.uti ...

  4. 【笔记】机器学习 - 李宏毅 - 8 - Backpropagation

    反向传播 反向传播主要用到是链式法则. 概念: 损失函数Loss Function是定义在单个训练样本上的,也就是一个样本的误差. 代价函数Cost Function是定义在整个训练集上的,也就是所有 ...

  5. C# 将List数据 导出到csv 文件

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Ref ...

  6. Maven快速入门使用

    1. Maven 介绍 1.1 为什么使用 Maven 由于 Java 的生态非常丰富,无论你想实现什么功能,都能找到对应的工具类,这些工具类都是以 jar 包的形式出现的,例如 Spring,Spr ...

  7. SpringBoot初学(4)– JdbcTemplate和Mybatis

    前言 github: https://github.com/vergilyn/SpringBootDemo 代码位置: 一.Spring Boot集成JdbcTemplate或NamedParamet ...

  8. 对于tensorflow中的gradient_override_map函数的理解

    # #############添加############## def binarize(self, x): """ Clip and binarize tensor u ...

  9. 【巨杉数据库SequoiaDB】巨杉数据库无人值守智能自动化测试实践

    刚刚过去的春节,新型冠状病毒疫情突如其来地横扫大江南北.为了响应国家号召,许多软件公司和互联网公司也将在较长一段时间内建议员工采取远程办公的方式,同时也存在骨干工程师无法及时返岗的问题,使得生产力大受 ...

  10. PAT (Basic Level) Practice (中文)1031 查验身份证 (15 分)

    一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8, ...