string
创建和访问
- 对象创建:
#include<string>
//不带参
string s1;
//带参
string s2("abc");
//拷贝
string s3 = s2;
-
访问:
//下标访问 for(int i = 0;i<s3.size();++i){ char x = s3[i]; } //迭代器 string::iterator it = s3.begin(); while(it!=s3.end()){ cout<<*it<<endl; ++it; } //范围for+auto for(auto& ch:s3){ cout<<ch+=1; }
接口
容量操作
#include <string>
string s1("abcd");
//字符串长度
s1.size();
//字符串容量
s1.capacity();
//字符串判空
s1.empty();
//清空字符
s1.clear();
//为字符串预留空间,当设置的空间小于目前字符串的大小则不会变动,当大于目前大小时,可能会扩容,依据平台而定;
s1.reserve();
//有效字符数修改,多余空间用字符c填充,比原字符串小则缩小到第n个字符;
//void resize (size_t n);void resize (size_t n, char c); 函数原型,第二个参数无时用0填充;
s1.resize(6);
内容修改
#include <string>
string s1("abcd");
//尾插
s1.push_back('a');
s1.append("avbcasd");
//指定插入
s1.insert(2,"adasds");//在下标位置插入
//字符截取
s1.substr(3,5)//在str中从pos位置开始,截取n个字符,然后将其返回
//删除
s1.erase(3,4)//删除pos位置后n个字符
内容查找
#include <string>
string s1("abcd");
//查找特定字符出现的位置下标,没有返回npos
s1.find(4);
s1.find("asd")