C++string(字符串)总结

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类型字符串数组中;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++中,可以使用string类来进行字符串匹配。C++string类提了一系列成员函数和操作符来进行字符串的比较和匹。 一种常见的字符串匹配方法是使用string类的find函数。find函数可以在一个字符串中查找另一个字符串,并返回第一次出现的位置。例如,可以使用以下代码来查找字符串s中是否包含子串sub: ```cpp #include <iostream> #include <string> int main() { std::string s = "Hello, world!"; std::string sub = "world"; size_t found = s.find(sub); if (found != std::string::npos) { std::cout << "子串在位置 " << found << " 处找到了" << std::endl; } else { std::cout << "子串未找到" << std::endl; } return 0; } ``` 另外,还可以使用string类的compare函数来进行字符串的比较。compare函数可以比较两个字符串的大小关系,并返回一个整数值表示比较结果。如果两个字符串相等,则返回0;如果第一个字符串小于第二个字符串,则返回一个负数;如果第一个字符串大于第二个字符串,则返回一个正数。例如,可以使用以下代码来比较两个字符串s1和s2: ```cpp #include <iostream> #include <string> int main() { std::string s1 = "abc"; std::string s2 = "def"; int result = s1.compare(s2); if (result == 0) { std::cout << "两个字符串相等" << std::endl; } else if (result < 0) { std::cout << "s1 小于 s2" << std::endl; } else { std::cout << "s1 大于 s2" << std::endl; } return 0; } ``` 除了以上介绍的方法,C++还提供了其他一些字符串匹配的函数和算法,如正则表达式匹配、KMP算法等。具体使用哪种方法取决于你的需求和场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值