包含头文件:string
整合
//string:字符串
void string_test_01() {
//构造
string s1; //默认构造
const char* str = "hello world";
//使用c风格字符串初始化
string s2(str);
//使用拷贝构造初始化
string s3(s3);
//string s4(n,m):使用n个m(单字符)初始化
string s4(5, 'a');
}
void string_test_02() {
//赋值
string str1;
//直接使用=对str1进行赋值
str1 = "hello world";
string str2;
//使用str1对str2进行赋值
str2 = str1;
string str3;
//使用单个字符对字符串进行赋值
str3 = 'a';
string str4;
//使用assign成员函数对str4进行赋值
str4.assign("hello");
string str5;
//string str.assign(const char* s, int n):将s中的前n个放到str
str5.assign("hello", 3);
string str6;
//string str.assign(n,m):将n个m(单字符)放入str中
str6.assign(5, 'a');
string str7;
//把str6赋值给str7,也可以在括号内写c风格字符
str7.assign(str6);
}
void string_test_03() {
//字符串拼接
string str1 = "abc";
//+=进行末尾拼接,可以追加单个字符
str1 += "def";
string str2 = "xyz";
//可以追加已经初始化的字符串
str2 += str1;
cout << str2 << endl;
string str3 = "i";
//在str3末尾插入字符串
str3.append(" love");
//str.append(s, n):在str后面追加s(字符串)的前n个
str3.append(" study abcdef", 6);
//从str2的第2个位置(从0开始)截取3个放到str3的末尾
str3.append(str2, 2, 3);
}
void string_test_04() {
//查找和替换
//查找
string s1 = "abcdefde";
//返回de的第一次出现的位置(从0开始)
int pos1 = s1.find("de");
//没有找到返回-1
int pos2 = s1.find("df");
//str.find(s, n):从第n个位置(从0开始)开始找s(字符串),
//找到返回位置(原字符串的位置,与开始找的位置无关),未找到返回-1
int pos3 = s1.find("de", 4);
//rfind是从右往左寻找,返回的位置是原字符串的位置(从左往右数)
int pos4 = s1.rfind("de");
//替换
string s2 = "abcdefg";
//从1号位置(从0开始)起的后2个字符替换成"xyz",即把bc替换成xyz剩余不变
s2.replace(1, 2, "xyz");
}
void string_test_05() {
//比较
//字符串按照ASCII码进行对比
//两个字符串相等,返回0
//第一个>第二个,返回1
//第一个<第二个,返回-1
string str1 = "abc";
string str2 = "abc";
int ans = str1.compare(str2);
}
void string_test_06() {
//字符串的存取
string str1 = "abcdefgh";
cout << str1[2] << endl; //通过[]的方式
cout << str1.at(3) << endl; //通过at的方式
}
void string_test_07() {
//插入删除
string str = "abcdef";
string s = "987";
str.insert(0, "123"); //在原字符串的0号位置之前插入123
str.insert(0, s);
str.insert(3, 5, '0'); //在3号位置插入5个'0'
str.erase(3, 5); //从3号位置起删除5个
}
void string_test_08() {
//子串获取
string str = "abcdefghijkl";
string s;
s = str.substr(0, 3); //从str中的0号位置截取3个字符
}
构造
void string_test_01() {
//构造
string s1; //默认构造
const char* str = "hello world";
//使用c风格字符串初始化
string s2(str);
//使用拷贝构造初始化
string s3(s3);
//string s4(n,m):使用n个m(单字符)初始化
string s4(5, 'a');
}
赋值
void string_test_02() {
//赋值
string str1;
//直接使用=对str1进行赋值
str1 = "hello world";
string str2;
//使用str1对str2进行赋值
str2 = str1;
string str3;
//使用单个字符对字符串进行赋值
str3 = 'a';
string str4;
//使用assign成员函数对str4进行赋值
str4.assign("hello");
string str5;
//string str.assign(const char* s, int n):将s中的前n个放到str
str5.assign("hello", 3);
string str6;
//string str.assign(n,m):将n个m(单字符)放入str中
str6.assign(5, 'a');
string str7;
//把str6赋值给str7,也可以在括号内写c风格字符
str7.assign(str6);
}
字符串拼接
void string_test_03() {
//字符串拼接
string str1 = "abc";
//+=进行末尾拼接,可以追加单个字符
str1 += "def";
string str2 = "xyz";
//可以追加已经初始化的字符串
str2 += str1;
cout << str2 << endl;
string str3 = "i";
//在str3末尾插入字符串
str3.append(" love");
//str.append(s, n):在str后面追加s(字符串)的前n个
str3.append(" study abcdef", 6);
//从str2的第2个位置(从0开始)截取3个放到str3的末尾
str3.append(str2, 2, 3);
}
查找和替换
void string_test_04() {
//查找和替换
//查找
string s1 = "abcdefde";
//返回de的第一次出现的位置(从0开始)
int pos1 = s1.find("de");
//没有找到返回-1
int pos2 = s1.find("df");
//str.find(s, n):从第n个位置(从0开始)开始找s(字符串),
//找到返回位置(原字符串的位置,与开始找的位置无关),未找到返回-1
int pos3 = s1.find("de", 4);
//rfind是从右往左寻找,返回的位置是原字符串的位置(从左往右数)
int pos4 = s1.rfind("de");
//替换
string s2 = "abcdefg";
//从1号位置(从0开始)起的后2个字符替换成"xyz",即把bc替换成xyz剩余不变
s2.replace(1, 2, "xyz");
}
比较
void string_test_05() {
//比较
//字符串按照ASCII码进行对比
//两个字符串相等,返回0
//第一个>第二个,返回1
//第一个<第二个,返回-1
string str1 = "abc";
string str2 = "abc";
int ans = str1.compare(str2);
}
字符串的存取
void string_test_06() {
//字符串的存取
string str1 = "abcdefgh";
cout << str1[2] << endl; //通过[]的方式
cout << str1.at(3) << endl; //通过at的方式
}
插入和删除
void string_test_07() {
//插入删除
string str = "abcdef";
string s = "987";
str.insert(0, "123"); //在原字符串的0号位置之前插入123
str.insert(0, s);
str.insert(3, 5, '0'); //在3号位置插入5个'0'
str.erase(3, 5); //从3号位置起删除5个
}
子串的获取
void string_test_08() {
//子串获取
string str = "abcdefghijkl";
string s;
s = str.substr(0, 3); //从str中的0号位置截取3个字符
}