C++string(字符串)总结

本文详细介绍了C++标准模板库中的string数据类型,包括string对象的定义、字符串长度的获取、字符串运算、子字符串的提取以及string类型与char类型字符串的转换。通过实例演示了string对象的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

string是在C++标准模板库中的数据类型,string类型的对象用来存放字符串,且不用担心字符串越界问题,头文件为<string>

1、定义string对象

string 变量名;

 (1)

string s1,s2;  //定义对象s1,s2,没有初始化,

string s3="hello"  //定义对象并初始化

cin>>s1>>s2;   //输入:abc defg

cout<<s1<<' '<<s2<<' '<<s3<<endl;  //输出:hello abc defg

(2)string对象数组的定义

string str1[]={"ab","abc"};   //等同于string str1[2]={"ab","abc"}; 

string str2[3]; //如果不初始化,必须指定string对象数组的长度;

cin>>str2[0]>>str2[1]>>str2[2];  //输入: a bc defg

cout<<str1[1]<<str2[0]<<endl; 输出:abc a

2、string对象字符串的长度

string s="abcd"

string ch[2]={"ac","abc"};

int s_size=s.size(); //或int s_size=s.length(),表示字符串s的长度

int ch[0]_size=ch[0].size(); //字符串数组ch[0]的长度

printf("s_size=%d,ch[0]_size=%d",s_size,ch[0]_size);

3、string 对象运算

string 对象之间可以用 <、<=、==、>=、> 运算符进行比较,还可以用+将两个 string 对象相加、将一个字符串常量和 string 对象相加、将一个字符数组和 string 对象相加,相当于进行字符串连接。+=运算符也适用于 string 对象。string 对象在比较大小时是按词典序比较的,而且是大小写相关的。由于大写字母的 ASCII 码小于小写字母的 ASCII 码('A' ~ 'Z' 的 ASCII 码是 0x41 ~ 0x5a,'a' ~ 'z' 的 ASCII 码是 0x61 ~ 0x7a),所以 Zbc 比 abc 小。此外,string 对象还可以通过[]运算符和下标存取字符串中的某个字符。例如: 

string s1 = "123", s2 = "abc11", s3;  //s3是空串,s3==""
s3 = sl + s2;  //s3 变成"123abc"
s3 += "de";  //s3 变成"123abcde"
bool b = s1 < s3;  //b 为 true
char c = s1[2];  //c变成'3'(下标从0开始计算)
s1[2] = '5';  //s1 变成”125"

4、string取子字符串

string s="abcd"

string s1=s.substr(1,2); //取字符串s从下标1开始,长度为2的子字符串,即s1="bc";

5、string类型字符串转换为char类型字符串

string ss="abcd"

char ch[10];

strcpy(ch,ss.c_str());  //c_str()函数把string类型字符串转换为char类型字符串,然后复制到char类型字符串数组中;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值