有求必应

导航

C++STL string

string的初始化

string();

string(const string &str);

string(const char* str);

string(int n,char c);

遍历

1.数组方式(重载数组)

2.迭代器string::iterator

3.ai()能抛出异常 

string s1 = "123";

char c;

try

{

for(int i = 0;i < s1.length(),i++)

{

  c = s1.at(i);//能抛出异常

}

}catch(...)

{

}

 

字符指针和string的转换

//string转char*
string s1 = "aaa";
char* p1 = (char*)s1.c_str();//或s1.data()
//char*转string
string s2;
char* p2 = "qqq";
s2 = p2;
//string copy到buf
char buf[1024];
s1.copy(buf,3/*copy几个字符*/,0/*从哪个字符开始*/);

连接

1.使用重载+=

string s1 = "111";

string s2 = "222";

string s3 = s1+s2;

2.append

string s3 = "333";

string s4 = "444";

s3.append(s4);

查找和替换

1.查找

int find(char c ,int pos);//从pos查找c所在当前字符串的位置  

int find(const char* s,int pos);//从pos开始查找字符串s在当前字符串的位置

int find(const strin&* s,int pos);//从pos开始查找字符串s在当前字符串的位置

如果查找不到返回-1

int rfind(char c ,int pos);//从pos开始从后向前查找c所在当前字符串的位置  

int rfind(const char* s,int pos);

int rfind(const strin&* s,int pos);

2.替换

string &replace(int pos,int n,const char* s);//删除从pos开始的n个字符,然后在pos处插入s

string &replace(int pos,int n,const string& s);//删除从pos开始的n个字符,然后在pos处插入s

 

截断和插入

1.删除

string &erase(int pos ,int n);//删除pos开始的n个字符,返回修改后的字符串

2.插入

string &insert(int pos,const char* s);//在pos位置插入s

string &insert(int pos,const string& s);//在pos位置插入s

string &insert(int pos,int n,char c);//在pos位置插入n个c

 

string算法

string s1 = "AAAbbb";

transform(s1.begin(),s1.end(),s1.begin(),toupper);//转化成大写

transform(s1.begin(),s1.end(),s1.begin(),tolower);//转化成小写

 

posted on 2018-09-12 13:57  名侦探江户川  阅读(118)  评论(0编辑  收藏  举报