好吧,string这玩意都听烂了,基本上学每个编程语言都要涉及,这里还是c++里string一些常用的方法
构造方式
void test01() {
string s; //默认构造
const char* str = "hello";
string s2(str);
string s3(s2);
string s4(10, 'a');
}
赋值方式
void test02() {
string str = "hello";
string str1 = str;
string str2;
str2 = 'a';
string str3;
str3.assign("hello");
string str4;
str4.assign("hello", 3);//前三个赋给它
string str5;
str5.assign(str4);
str5.assign(10, 'w');
}
字符串增加
void test03() {
string str1 = "我";
str1 += "是";
str1 += 'w';
string str2 = "sp";
str1 += str2;
string str3 = "I";
str3.append(" love");
str3.append("youaaaa", 3);//参数的前n个拼接
str3.append(str1);
str3.append("yayayay", 2, 5);//指定位置开始截取指定长度增加
}
字符串查找替换
void test04() {
string str1 = "abcdefg";
str1.find("de");//返回第一次出现的索引 没有返回-1
str1.rfind("de");
//refind从后往前找,find从前往后找 都是返回索引
//替换
str1.replace(1, 3, "111");//从索引1开始长度3替换为指定参数
}
字符串比较操作 按ASCII值比较
void test05() {
string str1="hello";
string str2 = "hello";
if (str1.compare(str2) == 0) {
cout << "相等";
}
}
字符串存取
void test06() {
string str1 = "qqqqq";
//通过[]
for (int i = 0;i < str1.size();i++) {
cout << str1[i];
}
//通过at
for (int i = 0;i < str1.size();i++) {
cout << str1.at(i);
}
//同样可以修改
str1[0] = 'a';
str1.at(1) = 'b';
}
插入和删除
void test07() {
string str1 = "hello";
string str = "aaa";
str1.insert(1, "aaa");//从指定位置插入指定字符 变量也可以传入
//删除
str.erase(1,3);//从指定索引位置删除指定长度的字符
}
获取子串
void test08() {
string str = "abcdefg";
string Substr = str.substr(1,3);//从指定索引位置截取指定长度的子串
}