您的位置:首页 > 游戏 > 游戏 > C++:STL容器的学习-->string

C++:STL容器的学习-->string

2025/2/13 23:35:07 来源:https://blog.csdn.net/qq_45404396/article/details/139252634  浏览:    关键词:C++:STL容器的学习-->string

请添加图片描述

C++:STL容器的学习-->string

        • 1. 构造方法
        • 2. string的赋值操作
        • 3. string字符串的拼接
        • 4. string 查找和替换
        • 5. string字符串的比较
        • 6. string字符存取
        • 7. string 插入和删除
        • 8. string截取

需要添加头文件#include <string>

1. 构造方法

string() 创建空的字符串

string(const char *s) 使用字符串s进行初始化

string(const string& str) 使用一个string对象初始化另外一个string对象

string(int n,char c) 使用n个字符c初始化

 int main() {string str1;cout << str1 << endl;char *a = "hello world!";string str2(a);cout << str2 << endl;string str3(str2);cout << str3 << endl;char b = '1';string str4(10,b);cout << str4 << endl;return 0;}
2. 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赋值给当前的字符串

int main() {string str1 = "hello world!";cout << str1 << endl;string str2;str2 = str1;cout << str2 << endl;string str3;str3.assign(str2);cout << str3 << endl;string str4;str4.assign(str3,5);cout << str4 << endl;string str5;str5.assign(10,'a');cout << str5 << endl;return 0;}
3. string字符串的拼接

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)

string& append(const string &s,int pos,int n) 字符串s中从pos开始的n个字符连接到字符串结尾

int main() {string str1;str1 += "hello c++";cout << str1 << endl;string str2 = "hello";str2.append(" c++2");cout << str2 << endl;string str3 = "hello";str3.append(str1,5,10);cout << str3 << endl;return 0;}
4. string 查找和替换

find、rfind找不到目标字符串时返回-1

int find(const string &str,int pos=0) const 查找str第一次出现位置,从pos开始查找

int find(const char *s,int pos=0) const

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=0) const

int rfind(const char *s,int pos=0) const

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

int rfind(const char c,int pos=0) const

string& replace(int pos,int n,const string & str) 替换从pos开始的n个字符为字符串str

string& replace(int pos,int n,const char *s) 替换从pos开始的n个字符为字符串s

int main() {string str1 = "hello C++ C++";int pos = str1.find("C++");cout << pos << endl;pos = str1.rfind("C++");cout << pos << endl;cout << str1.replace(6,3,"Python")<< endl;return 0;
}
5. string字符串的比较

按字符的ASCII码进行对比
返回 0、1、-1

int compare(const string &s) const 与字符串s进行比较
int compare(const char *s) const 与字符串s进行比较

int main() {string str1 = "c++",str2 = "c++";cout << str1.compare(str2) << endl;return 0;
}
6. string字符存取

string单个字符存取方式有两种

char& operator[](int n) 通过[]方式存取字符

char& at(int n) 通过at方式获取字符


int main() {string str1 = "hello world!";for (int i = 0; i < str1.size(); ++i) {cout << str1[i] << " " << str1.at(i)<<endl;}str1[0] = 'e';str1.at(1) = 'h';cout << str1 << endl;return 0;
}
7. string 插入和删除

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) 删除从pos开始的n个字符

int main() {string str1 = "hello";str1.insert(5," C++");cout << str1 << endl;str1.insert(5,5,'1');cout << str1 << endl;str1.erase(5,5);cout << str1 << endl;return 0;
}
8. string截取

string substr(int pos,int n) const 返回由pos开始的n个字符组成的字符串

int main() {string str1 = "hello C++";cout << str1.substr(5,4) << endl;return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com