当前位置:首页 > 网络技术 > c++ string截取某一部分(string查找字符串中的字符)

c++ string截取某一部分(string查找字符串中的字符)

longge@20222022-03-24 01:47:07网络技术220

前言

我们之前学习C语言的时候知道没有单独的字符串类型,只有字符型,对于操作字符串来说只能用字符型数组来完成,对字符的相关操作也是比较麻烦,但是我们在学习c++后对于字符串的操作是极其方便和简单的。

我们今天要学习的string类是c++的拓展库,使得我们对字符串的操作变得简单,严格来说是属于字符串对象,这个类库里面有很多对字符串操作的方法,接下来我们一起来学习一些比较常用的字符串操作。

字符串的定义

我们来看一下我们的字符串定义:

string str1;

string str2=”hello word”;

string str3(“hello word”);

我们要知道的是我们string类是可以自动处理我们字符串大小的,就比如你str的声明创建了一个长度为0的字符串对象,但是如果你对str1进行输入赋值的时候,它的长度会自动发生改变,这使得它比我们的数组更加的方便和安全,不会存在越界问题。

字符串输入和输出

我们在c++中使用的输入和输出使用的是cout和cin在定义好数组后就可以对字符串进行输入和输出,例如下面的代码:

string str;//定义一个字符串str

cin>>str; //使用cin对字符串进行赋值

cout<

字符串赋值、拼接和附加

我们可以通过字符串的这几个操作看出来string对处理字符串的强大之处了。在学习C语言的时候我们知道要把字符串str1赋值给str2 我们需要使用复制函数strcpy,但是我们的c++中可以直接使用等号;

strcpy(str2,str1)//C语言中把str1的值赋值给str2

str2 = str1 //c++中str1的值赋值给字符串str2;

我们再来看一下字符串的拼接把str1和str2进行拼接:
strcat(str1,str2);//C语言中字符串的拼接使用strcat

str2=str1+str2//c++中我们使用“+”号对字符串进行拼接。

字符串的其他操作

除了以上的操作string其他常用的方法之外string还有很多好玩的操作我们一起来看一遍:

1、创建一个包含n个元素,每个元素初始化为指定元素例如:string str1(3,A);输出结果会是“AAA”。

2、把str1赋值给str2 :string str2(str1)或者str2=str1;

3、获取字符串的长度和大小使用:str.size()和str.length();

4、字符串追加把str2追加到str1后面:str1+=str2、str1.append(str2)。

5、比较字符串是否相等:str1==str2 或者str1 !=str2;

6、获取str1中的子字符串:str1.substr(n,m),从str1的第n个字符开始取m个字符。

7、获取字符串中某个字符:str[n]、或者str.at(n)获取str字符串中第n个字符。

除了这些简单的操作其实string的可以实现的方法还有很多,比如说查找,删除,插入等方法,感兴趣的小伙伴可以自己去试一试。

代码测试

#include
#include
using namespace std;
int main()
{
  
string str1(3,'A');
cout<

string和C语言中字符函数对比

在刚刚讲述字符串拼接和赋值的时候单独拿出来讲了一下,主要是为了现在和大家再多说一下他们之间的区别,我们C语言虽然说也可以实现对字符串的相关操作,但是相对麻烦,但是除了麻烦我们应该还要知道另外一个重要的是方面:

我们函数strcat()在赋值的时候会存在目标内存不足,无法存储的危险,也许会覆盖相邻的内存。可能会导致程序终止运行。但是我们的string会自动调整大小能够很好避免这个错误的发生。

免责声明
本站部分资源来源于互联网 如有侵权 请联系站长删除
龙哥网是优质的互联网科技创业资源_行业项目分享_网络知识引流变现方法的平台为广大网友提供学习互联网相关知识_内容变现的方法。

“c++ string截取某一部分(string查找字符串中的字符)” 的相关文章

jQuery的$().each方法和$.each()方法的区别(jquery的each遍历方法)

jQuery的$().each方法和$.each()方法的区别(jquery的each遍历方法)

$().each和$.each()是两个名称相似的jquery方法,它们的区别是前者用于处理DOM对象,后者用于处理数据对象。 方法结构 $().each $(selector).e...

为什么百度搜索只收录网站首页不收内?(百度不收录内页的原因)

为什么百度搜索只收录网站首页不收内?(百度不收录内页的原因)

    一般来说 新站刚上线 起码要一两个月才会开始收录 前期一般只是收录一个首页而已,对于这个情况,没有别的办法,因为百度为了防止垃圾站的泛滥,特地把新站的审核时间拉长...

经济金融之计量经济学(金融市场计量经济学)

经济金融之计量经济学(金融市场计量经济学)

课程介绍 看到计量经济学恐怖的矩阵,漫天的推导过程就想退缩?计量经济学对于初学者来说确实很难,因为其对学生的数学基础、统计学基础有一定的要求。但只要构建了完整的知识体系,了解计量经济研究的框...

实例讲解MyBatis如何防止SQL注入_java(mybatis怎么防止sql注入)

实例讲解MyBatis如何防止SQL注入_java(mybatis怎么防止sql注入)

 SQL注入是一种很简单的攻击手段,但直到今天仍然十分常见。究其原因不外乎:No patch for stupid。为什么这么说,下面就以JAVA为例进行说明: 假设数据库中存在这样的...

WebSocket简介与消息推送_java(websocket实现消息推送)

WebSocket简介与消息推送_java(websocket实现消息推送)

目录 一、Socket简介 TCP/IP协议 UDP协议 二、WebSocket简介与消息推送 三、WebSocket客户端 四、WebS...

这届年轻人,对618越来越没兴趣

这届年轻人,对618越来越没兴趣

随着最后一次「支付成功」,小雷今年618的剁手暂时落下了帷幕。往年的618活动,6月18日就是活动的最后一天。很多小伙伴也是趁着最后一天,看看还有没有啥优惠,把要囤的、之前忘买的都给补上。今年却有些不...