文章插图
文章插图
前言
我们之前学习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<<str<<endl;//使用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<iostream>#include<string>using namespace std;int main(){string str1(3,'A');cout<<str1<<endl;string str2="hello word";int a=str2.size();int b=str2.length();cout<<"str2 长度:"<<a<<""<<b<<endl;string str3="hello";string str4=" word";str3+=str4;cout<<"拼接:"<<str3<<""<<endl;str3.append(str4);cout<<"拼接:"<<str3<<""<<endl;string str5="hello";string str6="hello";string str7="word";if(str6 == str5){cout<<"相等"<<endl;}if(str7 != str5){cout<<"不相等"<<endl;}string str8="ABCDEFG";string str9=str8.substr(2,3);cout<<"str9:"<<str9<<endl;cout<<"str8[2]:"<<str8[2]<<endl;return 0;}
string和C语言中字符函数对比在刚刚讲述字符串拼接和赋值的时候单独拿出来讲了一下,主要是为了现在和大家再多说一下他们之间的区别,我们C语言虽然说也可以实现对字符串的相关操作,但是相对麻烦,但是除了麻烦我们应该还要知道另外一个重要的是方面:
【c截取字符串中的一部分 string截取一段】我们函数strcat()在赋值的时候会存在目标内存不足,无法存储的危险,也许会覆盖相邻的内存 。可能会导致程序终止运行 。但是我们的string会自动调整大小能够很好避免这个错误的发生 。
- 满族习俗中的禁忌
- mp3截取软件下载 用什么软件截取mp3音频
- 椰浆是什么_椰浆怎么做
- 土味情话大全撩妹段子,你最近在我心中的分量更重了呢
- 凉皮中的面筋怎么做
- 英语口语考试中的日常交际用语 英语口语交际常用句子
- 移柩 黄历里移柩是什么意思
- 看剧学英语中的美剧 想要看剧学英语应该看什么
- 虾子能吃吗
- 核桃含糖吗