C++学习记录-STL-string
C++学习记录-STL-string
一、string构造函数
-
string() :创建一个空字符串
1
string str;
-
string(const char *s)
1
2char arr[10] = "abcdegjki" ;
string a(arr); -
string(const string& str)
1
2string a;
string b(a); -
string(int n,char c)
1
string c(10, 'a');//创建一个字符串,内容为aaaaaaaaaa
二、赋值操作
除了 =之外,还有assign()
-
string& assign(const char *s) //把字符串s赋给当前字符串
1
2
3char arr[10] = "abcdegjki" ;
string astr;
astr.assign(arr); -
string& assign(const char *s,int n) //把字符串s的前n个字符赋给当前字符串
1
2
3
4
5
6char arr[10] = "abcdegjki" ;
string astr;
astr.assign(arr,5);//把abcde赋值给astr
cout <<astr; -
string& assign(const string &s) //把字符串s赋给当前字符串
1
2
3
4string astr;
string bstr;
bstr.assign(astr); -
string& assign(int n,char c) //用n个字符c赋给当前字符串
1
2string astr;
astr.assign(10,'w');
三、字符串拼接
-
string& append(const char *s) //把字符串s连接到当前字符串末尾
-
string& append(const char *s,int n) //把字符串s的前n位连接到当前字符串的末尾
-
string& append(const string &s)
-
string& append(const string &s,int pos,int n) //把字符串s从pos位置开始的n个字符连接到当前
字符串的末尾
1
2
3string s="abcdefg";
string a="aaa";
a.append(s,1,3);//此时a为:aaabcd
四、字符串查找
语法:字符串名.find() //从第一位开始找
字符串名.rfind() //从最后一位开始找
返回的是所在的位置,若返回-1则表示找不到
示例:
1 | string a = "abcdededef"; |
五、字符串的比较
语法:字符串名.compare(与比较的字符串);
按字符串各字符的ASCII码的大小按顺序进行比较
- 相等:返回0
- 大于:返回1
- 小于:返回-1
1 | string a = "abcdededef"; |
六、字符串中子串的获取
字符串名.at(int n) //获取下标为n的字符
1 | string a = "abcdededef"; |
字符串名.substr(int pos=0,int n=npos); //获取由pos开始的n个字符组成的子串
1 | string a = "abcdededef"; |
七、字符串的替换、插入、删除
字符串的替换:
字符串名.replace(int pos,int n,string &s) //从下标为pos的n个字符替换为s
字符串名.replace(int pos,int n,char *a) //从下标为pos的n个字符替换为a
示例:
1 | string a = "abcdededef"; |
字符串的插入:
字符串名.insert(int pos,const string &s) //在下标为pos处插入字符串s (s的开头为下标pos)
字符串名.insert(int pos,const char *a) //在下标为pos处插入字符串a (a的开头为下标pos)
字符串名.insert(int pos,int n,char c) //在下标为pos后插入n个c
示例:
1 | string a = "abcdededef"; |
字符串的删除:
字符串名.erase(int pos,int n) //从下标为pos开始删除n个字符
示例:
1 | string a = "abcdededef"; |
整体示例代码
1 |
|






