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;