C++string类

C++支持C风格的字符串,另外还提供了一种字符串数据类型:string。string是定义在头文件string中的类,使用前需要包含头文件string。

使用string定义字符串主要有以下几种方式:

#include <string>
using namespace std;

int main()
{
    string s1;
    s1 = "趣字节,有趣的编程!!!";         //第一种方式,字符串赋值
    string s2 = "今天,好好学习了吗?";    //第二种方式,字符串初始化
    string s3{"你学废了吗?"};           //第三种方式 ,用字符串构造string
    cout << s1 << endl;
    cout << s2 << endl;
    cout << s3 << endl;
    return 0;
}

第一种方式先定义了string变量s1,再为string变量s1赋值;第二种方式直接使用“=”为string变量s2赋值;第三种方式在定义string变量时,将初始值放在“{ }”运算符中,使用“{ }”运算符中的字符串为变量初始化;

提示:使用string定义字符串时,不需要担心字符串长度、内存不足等情况,而且string类重载的运算符与成员函数足以完成字符串的各种处理操作。

常见的string字符串操作

1.访问字符串中的字符
string类重载了“[]”运算符,可以通过索引方式访问和操作字符串中指定位置的字符。如下所示:

string s="hello,C++"; 
s[7]='P'; 
s[8]='P';

上述代码中,通过索引将字符串s中的两个“+”都修改成了'P'。

2.字符串的连接
在C语言中,连接两个字符串要调用strcat()函数,还要考虑内存溢出情况。在C++中,string重载了“+”运算符,可以使用“+”运算符连接两个string类型的字符串,如下所示:

string s1,s2; 
s1="我在学习"; 
s2="C++"; 
cout<<s1+s2<<endl;     //我在学习C++

3.字符串的比较
在C语言中,比较两个字符串是否相等需要调用strcmp()函数,而在C++中,可以直接使用的“>”,“<”,“==”等运算符比较两个string字符串。如下所示:

string s1,s2; 

cin>>s1>>s2; 
//比较两个字符串内容是否相同 
if(s1>s2) 
    cout<<"字符串s1大于s2"<<endl;  
else if (s1<s2)  
    cout<<"字符串s2大于s1"<<endl; 
else 
    cout<<"字符串s1与s2相等"<<endl;

4.字符串的长度计算
string类提供的length()函数用于获取字符串长度。length()函数类似于C语言中的strlen()函数。调用length()函数获取字符串长度,如下所示:

#include <string>
using namespace std;

int main()
{
    string s = "hello C++";
    cout << "长度:" << s.length() << endl;

    return 0;
}

由于计算结果不包括字符串末尾结束标志符“\0”,因此,字符串s的长度为9。

5.字符串交换
string类提供了成员函数swap(),用于交换两个字符串的值,示例代码如下所示:

string s1="hello C++"; 
string s2="I Love China!"; 
s1.swap(s2);     //通过“.”运算符方式交换
swap(s1,s2);     //通过函数调用方式交换

需要注意的是,string的成员函数swap()只能交换string类型的字符串,不能交换C语言风格的字符串。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值