基本概念:
string构造函数:
/*string构造函数演示*/ string s();//s为空字符串 string s1("i love c++");//s1为“i love c++” string s2(s1);//s2拷贝s1(深拷贝) string s3(3,‘a‘);//s3为“aaa”
字符串的赋值:
/*string 的赋值操作*/ /*函数原型 string& operator=(const char* s); //char*类型字符串 赋值给当前的字符串 string& operator=(const string &s); //把字符串s赋给当前的字符串 string& operator=(char c); //字符赋值给当前的字符串 string& assign(const char *s); //把字符串s赋给当前的字符串 string& assign(const char *s, int n); //把字符串s的前n个字符赋给当前的字符串 string& assign(const string &s); //把字符串s赋给当前字符串 string& assign(int n, char c); //用n个字符c赋给当前字符串 */ string s; s="i love c++"; string s2; s2=s; string s3; s3=‘c‘; string s4; s4.assigin("i love c++",4);//其余不再赘述。(空格占1位)。
字符串的拼接:
/* string& operator+=(const char* str); //重载+=操作符 string& operator+=(const char c); //重载+=操作符 string& operator+=(const string& str); //重载+=操作符 string& append(const char *s); //把字符串s连接到当前字符串结尾 string& append(const char *s, int n); //把字符串s的前n个字符连接到当前字符串结尾 string& append(const string &s); //同operator+=(const string& str) string& append(const string &s, int pos, int n);//字符串s中从pos开始的n个字符连接到字符串结尾 */ string s="i"; string s1="love"; s+=s1;//s为"i love" s+=“c++”; //s为"i love c++"; string s2="very much" s.append(s4,0,9);//s为“i love c++ very much”
字符串的查找与替换:
/* int find(const string& str, int pos = 0) const; //查找str第一次出现位置,从pos开始查找 * int find(const char* s, int pos = 0) const; //查找s第一次出现位置,从pos开始查找 * int find(const char* s, int pos, int n) const; //从pos位置查找s的前n个字符第一次位置 * int find(const char c, int pos = 0) const; //查找字符c第一次出现位置 * int rfind(const string& str, int pos = npos) const; //查找str最后一次位置,从pos开始查找 * int rfind(const char* s, int pos = npos) const; //查找s最后一次出现位置,从pos开始查找 * int rfind(const char* s, int pos, int n) const; //从pos查找s的前n个字符最后一次位置 * int rfind(const char c, int pos = 0) const; //查找字符c最后一次出现位置 * string& replace(int pos, int n, const string& str); //替换从pos开始n个字符为字符串str * string& replace(int pos, int n,const char* s); //替换从pos开始的n个字符为字符串s */ string s("asdasda"); int pos=s.find("asd",0[,3]);//在s中从0开始匹配“asd”字符串【的前3位】,返回第一次出现的位置 int pos1=s.rfind("asd",0[,3])//同find,区别在于返回最后一次出现的位置 s.replace(0,3,"as");//将s中,从0开始的3个字符替换为“as”。s=“asasda”。
字符串的比较:
/* int compare(const string &s) const;//与字符串s比较 int compare(const char* s) const; */ //字符串之间比较的是逐个字符的ASCII码值。大于返回1,等于返回0,否则返回-1. string s("asd"); string s1("bsd"); s.compare(s1);//返回-1 s.compare("aad");//返回1 s.compare("asd");//返回0
字符操作:
/* char& operator[](int n); char& at(int n); */ string s="abc"; cout<<s[0];// 输出a cout<<s.at(0);//同上 s[0]=‘b‘;//s="bbc" s.at(0)=‘c‘;//s="cbc"
string的插入与删除:
1, insert()。
2,erase()。
/* string& insert(int pos, const char* s); //插入字符串 string& insert(int pos, const string& str); //插入字符串 string& insert(int pos, int n, char c); //在指定位置插入n个字符c string& erase(int pos, int n = npos); //删除从Pos开始的n个字符 */ string s("aaaaa"); s.insert(1,"bb"); // s="abbaaaa"; s.erase(1,2); //从第一位的后面一位(或下标1开始)开始,删除2个字符
string获取子串:
方法:string substr(int pos=0,int n=npos) const;
//从pos开始,返回n个字符的子串
原文:https://www.cnblogs.com/my-new-blog-zxj/p/13368784.html