string的使用

string的使用

基本操作

  1. 成员函数c_str()

使用printf时,需要将string转换为c风格的字符串输出

printf("str = %s\n",str.c_str()); //输出str
  1. 获取字符串长度(length/size)
int length = str.length();
//或者
int length = str.size();
  1. 拼接字符串( + 或 append)
string str1 = "hello";
string str2 = "world";
string str3 = str1 + ", " + str2;
string str4 = str1.append(", ").append(str2);
  1. 字符串查找(find)
string str = "hello, world";
size_t pos = str.find("world"); //查找子字符串的位置

返回子字符串的起始位置

  1. 字符串替换(replace)
string str = "hello, world";
str.replace(7, 5, "universe");

第一个参数—子串起始的位置

第二个参数—替换的长度

第三个参数—替换的子字符串

  1. 提取子字符串(substr)
string str = "hello, world";
string str2 = str.substr(7, 5);

第一个参数—提取字符串的起始位置

第二个参数—长度(注意不要越界)

  1. 字符串比较(compare)
string str1 = "hello";
string str2 = "world";
int result = str1.compare(str2);

返回值=0,str1==str2

返回值<0,str1<str2

返回值>0,str1>str2

也可以直接用s1<s2来比较string的大小

比较的规则是按照字典序大小进行比较

  1. 遍历string
  • 循环枚举下标
string s = "hello";
for(int i = 0; i<s.length(); i++) cout<<s[i];
  • auto枚举(其中&表示取引用类型,如果修改i将会改变原来的值)
for(auto i : s)
{
    cout<<i;
    i = 'a'; //此处修改无效,这个i是复制了s中对应的字符
}
for(auto &i : s)
{
    cout<<i;
    i = 'a'; //此处修改会改变s的字符值
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值