c++ string常见用法汇总

1. string 的初始化

#include <iostream>
#include <string>

string s1 = "aaaa";
string s2("bbbb");
string s3 = s2;
string s4(10, 'a');

2. string 的遍历

string s1 = "abcdefg";
//数组方式
for(int i =0; i<s1.length(); i++)
{
    cout << s1[i] <<endl;
}

//迭代器
for(string::iterator it = s1.begin(); it!=s1.end(); it++)
{
	cout<< *it <<endl;
}
//能在在抛出异常中使用的遍历           (抛开就是抛开异常,并进行处理,继续运行程序)
for(int i =0; i<s1.length(); i++)
{
    cout << s1.at(i) <<endl;
}

3. 字符指针和string的转换

//      char *  ===> string
string s1 = "aaa";

//    string ===> char *
printf("%s\n", s1.c_str());

// 把string中的内容copy到char *类型的buf中
char buf[128];
s1.copy(buf, 3 ,0);           从位置0开始拷贝3个到buf中

4. 字符串的连接

string s1 = "aaa";
string s2 = "bbb";
//(1)方式一
s1 = s1 + s2;
cout << s1 <<endl;            //aaabbb

//( 2 ) 方式二
s1.apend(s2);
cout << s1 <<endl;         //aaabbb

5. 字符串的查找和替换

#include <iostream>
#include <string>
#include "algorithm"

//(1) 查找字符串的下标
string s1 = "who hello 111";
int index = s1.find("who", 0);  //0表示偏移量,从哪开始查,     失败返回 -1
cout << index <<endl;

//(2) 查找字符串出现的次数
int offindex = s1.find("who", 0);                   
while (offindex != string::npos) //string::npos 表示 -1
{
	count ++;
	cout << offindex <<endl;
	offindex =offindex +1;
	s1.find("who", offindex);
}
cout << count <<endl;

//( 3 ) 替换指定位置字符串
string s3 = "aaa bbb ccc";
s3.replace(0, 3, "AAA");   // 起始位置     替换个数    。。。
cout<< s3 <<endl;           // AAA bbb ccc

6. 字符串的删除和替换

//(1)删除	
string s1 = "hello1 hello2 hello3";
string::iterator it = find(s1.begin(), s1.end(), 'l');
if(it != s1.end())
{
	s1.erase(it);  // 输出  helo1 hello2 hello3
}
s1.erase(s1.begin(), s1.end());  // 全部删除 区域删除

//(2)插入
string s2 = "bbb";
s2.insert(0, "AAA");  //输出  AAAbbb		
s2.insert(s2.length(), "ccc");  //输出  AAAbbbccc

7. 字符串转大写和转小写

函数原型

transform(...,...,...,...,...);     

第1, 2个参数表示转换范围,3个参数表示转换后存储的位置,第4参数表示转换方法

string s1 = "AAAbbb";
transform(s1.begin(), s1.end(), s1.begin(), toupper);//转大写  
//输出AAABBB

string s2 = "AAAbbb";
transform(s1.begin(), s1.end(), s1.begin(), tolower);//转小写   
//输出aaabbb  
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路过的小熊~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值