论字符串

 

        🚀欢迎互三👉:WSH2012ffff 💎💎

        🚀关注博主,后期持续更新系列文章

         🚀如果有错误感谢请大家批评指出,及时修改

 

目录

01字符串初始化

02如何获取带空格的字符串?

03如何获取字符串的长度?

04字符串如何进行大小比较?

05案例应用:字符串

一、倒序(逆序)输出字符串

二、倒序输出所有的小写字符

06扩展案例

字符(char)与字符串(string)不同,字符由单引号包裹,字符串则由双引号包裹。很多字符串在一起,就可以组成一个字符串,如下图:字符串hello,就是由h、e、l、l、o这五个字符组成。

字符串可以被看做是一个字符数组;所以,数组的语法同样适用于字符串,比如:通过下标获取单个字符。

声明了一个字符串变量a,并赋值“hello”,输出字符串里的第一个字符,通过数组名+下标的方式输出。

01字符串初始化

声明字符串的同时,给字符串变量赋值:可以使用等号(=),也可以使用小括号(初始值)赋值。变量a是动态赋值;变量a2是将a的值赋值a2;变量sa是将字符串常量“hello”赋值给s3。

当然声明后,如果要修改字符串变量,只能通过等于(=)给变量重新赋值;不能使用小括号。

02如何获取带空格的字符串?

我们使用cin函数,动态获取字符串时,会发现带空格的字符串无法获取,它会从空格处截断,只能得到空格前的部分内容。

比如:输入“ni hao”,得到的只有空格前的“ni”。如何解决这一问题呢?

系统提供了一个getline函数,获取一行。

这样修改代码后,带空格的字符串就可以获取到了。

03如何获取字符串的长度?

系统提供了size()函数,可以获取字符串的实际长度。

注意:空格也算一位。如果字符串中含有汉字,则一个汉字是2个字符的大小;比如:输入“我和你”,其长度就是6,读者可以测试验证结果。

04字符串如何进行大小比较?

字符串也有大小区分,它并不是按照字符串的长短比大小,而是按照对应字符的ASCII值比大小。在C++中,我们可以直接使用>、<、==等关系运算符比较字符串的大小:

05案例应用:字符串

一、倒序(逆序)输出字符串

所谓倒序或逆序,就是从后往前输出字符串的内容。需要结合循环下标实现,这里提供三种解决办法。

第一种:10到12行,字符数组从最后一位(s.size()-1)开始,倒序输出;

第二种:14到16行,字符数组从字符串长度(s.size())开始,倒序输出,需要在循环体部分减1,体现的字符串长度和字符串最后一位元素下标的位置关系;

第三种:18到20行,循环顺序输出,在循环体内,设置下标为:长度-1-I;也就是循环变量为0时,读取的是字符串最后一位的字符并输出。

二、倒序输出所有的小写字符

只需要在循环体里添加一个条件判断语句——在小写字符的区分范围之内即可(666^_^)。

06扩展案例

从键盘输入一个长度大于10的字符串,现要求:将字符串中的所有大小写字母都改写成该字母的下一个字母。如:最后一个小写字母z改写成字母a;最后一个大写字母Z改写成A,其他字符依照原有顺序不变。比如:

输入:Abczabcabcabc

输出:Bcdabcdbcdbcd