从C过渡到C++(蓝桥杯)STL常见用法 第四篇:STL——string(*)

1.STL——string(*)

概念:相当于char*的封装,理解为字符串

1.1简单使用

1.1.1定义字符串的打印

/**C中定义字符串以及打印*/
char *ch="asdkajbf";
//char ch[10]={"sakjl"};
for(int i=0;ch[i]!='\0';i++) cout<<*(ch+i);

/**C++中*/
string s="ssadaffw";
cout<<s<<endl;

1.1.2获取一行字符串

hello world
C中:
scanf("%s",ch);//1.仅获取一个单词,空格结束 2.ch[100]得设置初始大小
gets(ch);//可以含有空格
C++中
string s;
getline(cin,s);//获取一行数据
cout<<s;

1.1.3 +=运算符

+=对于字符串,字符有效,数字会转化为asc码

string s;
s+="hello";
s+=" world";
s+='5';
s+=10;//10对应的asc码是换行
int a=5;//想把a加入字符串,先把a化为字符
s+=(a+'0');
cout<<s;

1.1.4排序(用algorithm)

string s="5418340"; 
sort(s.begin(),s.end());
cout<<s;

1.4.5 erase函数

/**begin是头迭代器,end是尾迭代器*/
string s="5418340";
s.erase(s.begin());//删除第一个
s.erase(--s.end());//删除最后一个
cout<<s;

1.4.6 substr函数

/**begin是头迭代器,end是尾迭代器*/
string s="5418340";
s=s.substr(1,3);//取418,取索引为1,往后截断3个
s=s.substr(1,-1);//索引为1,截断到最后
cout<<s;

2.1 循环(3种)

2.1.1 for循环

string s="5418340";    //单个字符串
for(int i=0;i<s.length();i++) cout<<s[i];

2.1.2迭代器

for(string::iterator it=s.begin();it!=s.end();it++) cout<<*it;

2.1.3迭代器简化

注意在蓝桥杯中不能使用auto,但PTA可以

for(auto it=s.begin();it!=s.end();it++) cout<<*it;

2.1.3利用C++新特性for循环

for(auto x:s) cout<<x;

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ღ江晚吟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值