第一句子大全,网罗天下好句子,好文章尽在本站!

c++的string类和C语言中字符操作的区别

时间:2018-06-16

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

友情提示:本文共有 512 个字,阅读大概需要 2 分钟。

前言

我们之前学习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#includeusing namespace std;int main(){string str1(3,"A");cout<

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

在刚刚讲述字符串拼接和赋值的时候单独拿出来讲了一下,主要是为了现在和大家再多说一下他们之间的区别,我们C语言虽然说也可以实现对字符串的相关操作,但是相对麻烦,但是除了麻烦我们应该还要知道另外一个重要的是方面:我们函数strcat()在赋值的时候会存在目标内存不足,无法存储的危险,也许会覆盖相邻的内存。可能会导致程序终止运行。但是我们的string会自动调整大小能够很好避免这个错误的发生。

本文如果对你有帮助,请点赞收藏《c++的string类和C语言中字符操作的区别》,同时在此感谢原作者。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
学C++ 80%都是为了搞竞赛 凑一门语言?网友:莫钓鱼

学C++ 80%都是为了搞竞赛 凑一门语言?网友:莫钓鱼

...了?甚至还有种观点说:大部分写工程不用C++,学习这个语言只是为了竞赛……话题一出,便在网上引发了一番热议。而这样的话题,并非只是空穴来风。毕竟在编程语言的世界里,新语言层出不穷,“更新换代”也是常有的事...

2023-12-04 #经典句子

所有程序员都必须知道的语言!C++之基本结构

所有程序员都必须知道的语言!C++之基本结构

...位置;③任一函数的定义均从第一列开始书写。(5)C++语言没有专门的输入/输出语句,输入/输出操作是通过输入/输出流cin和cout来实现的。例如:cin》a》b;用来输入变量a和b的值。又例如:cout《"max="《m《endl;用来输出变量m...

2023-11-22 #经典句子

C 语言发展史的点点滴滴

C 语言发展史的点点滴滴

...87%BD%E5%BC%8F%E5%BA%AB#/%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE4.2 linux/lib/string.clinux kernel版本:4.18.13lnux kernel 地址 https://www.kernel.org/下面列出3个字符串处理函数 strcpy()、strncpy()、strncat()。代码出自Linus Benedict Torvalds之手,为什么这么说?看代码...

2023-01-31 #经典句子

十二篇文章判定一个程序员 看完之后你觉得你是程序员

十二篇文章判定一个程序员 看完之后你觉得你是程序员

...个程序开发人员都能从中受益。第十篇、Java程序员的小Stringjava.lang.String,我个人认为每个Java开发人员都应该了解一下。String在日常的Java开发中非常重要,这就是为什么每个Java程序员都应该对它非常了解。它涉及到了String的许...

2019-09-05 #经典句子

字符串操作大全:面试准备和日常编码所需一文打尽

字符串操作大全:面试准备和日常编码所需一文打尽

...(str.length); // 20console.log(str[2]); // "d"console.log(typeof str); // "string"console.log(typeof str[2]); // "string"console.log(typeofString(5)); //"string"console.log(typeofnewString(str)); //"object"console.log(str.indexOf("is")); // 6console.log(str.indexOf("today")); // -1console.log(str.in...

2023-01-23 #经典句子

教孩子写游戏:快速入门C++语言 理解这12个概念 1天时间够了

教孩子写游戏:快速入门C++语言 理解这12个概念 1天时间够了

“学”的部分:一个没有基础的人,要完整地学会C++语言,可能需要一年往上的时间,而且还不一定能学明白。我以为,这个问题出在教材上,写得太过于晦涩难懂了,而且把很多特别不常用的内容添加了进去,这会导致很多想...

2023-02-01 #经典句子

用Object键值替换switch语句

用Object键值替换switch语句

...对象查找目的,以从Object属性中获取值。让我们设置一个String仅返回值的简单Object键值。我们从交换机中保存了几行代码,对我而言,数据在演示中更加清晰。我们甚至可以进一步简化它,没有默认情况:但是,我们可能需要比...

2023-05-22 #经典句子

C#深入浅出:拓展你的数据类型知识

C#深入浅出:拓展你的数据类型知识

...。以下是它的语法形式:将元组赋给单独声明的变量:(string power, string name, int weight) = ("超高校的幸运", "脖子直抖", 65);将元组赋给预声明的变量:string power, name;int weight;(power, name, weight) = ("超高校的幸运", "脖子直抖", 65);将元组赋...

2024-01-31 #大杂绘