GESP C++等级认证三级12-操作string2-1
在《GESP C++等级认证三级10-操作字符数组2-1》和《GESP C++等级认证三级11-操作字符数组2-2》中,介绍了对字符数组进行拷贝、连接、比较、查找以及求长度的方法,在C++中,也可以对string进行上述操作。
相关连接1 string的相关知识,请参考《GESP编程等级认证C++三级8-字符串1》和《GESP编程等级认证C++三级9-字符串2》。
1 string的拷贝
通过“=”运算符可以实现string的拷贝,代码如图1所示。
图1 拷贝string的代码
其中,第10行代码使用“=”运算符将字符串s1的内容拷贝给s2。以上代码运行的效果如图2所示。
图2 代码运行效果
2 string的连接
通过“+”运算符实现string的连接,代码如图3所示。
图3 连接string的代码
其中,第9行代码使用“+”运算符将字符串s1和s2进行连接,并将连接后的字符串内容保存到s3中。以上代码运行的效果如图4所示。
图4 代码运行效果
3 string的比较
通过“>”、“<”、“==”等关系运算符实现string的比较,代码如图5所示。
图5 比较string的代码
其中,第8行代码使用if语句判断s1>s2的结果,该结果是布尔类型的值。因为字符串s1的第一个字符“h”小于字符串s2的第一个字符“w”,因此s1>s2的值是false,此时执行else语句,程序运行效果如图6所示。
图6 程序运行效果
4 string的查找
通过string类的find()函数和rfind()函数查找指定的字符或者字符串,代码如图7所示。
图7 查找string的代码
其中,第7行代码使用find()在字符串s1中从左向右查找字符“l”,找到的是hello中的第一个“l”,返回该字符所在的下标值;第8行代码使用rfind()从右向左查找字符“l”,找到的是world中的“l”;第9行代码查找字符串“ell”;第10行代码查找字符串“world”,如果s1中不包含要查找的字符或者字符串,则返回string::npos值,该值是一个很大的数,表示表示"未找到"。以上代码运行的效果如图8所示。
图8 代码运行效果