字符串
学习一下C++的基本函数和操作
#include <iostream>
#include <string>
using namespace std;
int main() {
string a = "Tinuv";
cout << a;
return 0;
}
操作符:[]
通过这个操作符可以使用索引的方式来访问字符串中的每一个字符
#include <iostream>
#include <string>
using namespace std;
int main() {
string a = "Tinuv";
cout << a[0];
return 0;
}
访问第一个字符和最后一个字符
通过front()和back()函数来访问字符串的一个字符和最后一个字符
#include <iostream>
#include <string>
using namespace std;
int main() {
string a = "Tinuv";
cout << a.front();
cout << "\n";
cout << a.back();
return 0;
}
迭代器
有正向的迭代器和逆向的迭代器
正向迭代器
#include <iostream>
#include <string>
using namespace std;
int main() {
string a = "Tinuv";
for(auto it = a.begin(); it != a.end(); it++) {
cout << *it<<" ";
}
return 0;
}
逆向迭代器
#include <iostream>
#include <string>
using namespace std;
int main() {
string a = "Tinuv";
for(auto it = a.rbegin(); it != a.rend(); it++) {
cout << *it<<" ";
}
return 0;
}
使用逆向迭代器的输出是
v u n i T
长度或空间
通过size()函数和length()函数来获得字符串有多少字符,使用empty()函数来判断字符串是否为空
#include <iostream>
#include <string>
using namespace std;
int main() {
string a = "Tinuv";
cout << a.size() << "\n";
cout << a.length() << "\n";
cout << a.empty() << "\n";
for(auto it = a.rbegin(); it != a.rend(); it++) {
cout << *it << " ";
}
return 0;
}
针对字符串的操作
清空字符串
使用clear()函数清空字符串
#include <iostream>
#include <string>
using namespace std;
int main() {
string a = "Tinuv";
a.clear();
for(auto it = a.begin(); it != a.end(); it++) {
cout << *it << " ";
}
return 0;
}
插入一个字符
如果猜得不错,在插入之前要获得一个迭代器,猜错了,只需要提供一个索引就行了
#include <iostream>
#include <string>
using namespace std;
int main() {
string a = "Tinuv";
a.insert(3,"k");
for(auto it = a.begin(); it != a.end(); it++) {
cout << *it << " ";
}
return 0;
}
删除一个字符
删除的话需要一个迭代器,要注意,迭代器只能加一或减一,不能加一个大于一的数
#include <iostream>
#include <string>
using namespace std;
int main() {
string a = "Tinuv";
a.erase(a.begin());
for(auto it = a.begin(); it != a.end(); it++) {
cout << *it << " ";
}
return 0;
}
push_back()和pop_back()
push_back()函数在最后一个位置填充一个字符,pop_back()从最后一个位置弹出一个字符
#include <iostream>
#include <string>
using namespace std;
int main() {
string a = "Tinuv";
a.push_back('a');
a.pop_back();
for(auto it = a.begin(); it != a.end(); it++) {
cout << *it << " ";
}
return 0;
}
向后面追加字符串
使用append()函数向后面追加字符串,这个方法和push_back()方法的区别就是push_back()只追加一个字符,而append()可以追加字符串,也可以使用+=操作符
#include <iostream>
#include <string>
using namespace std;
int main() {
string a = "Tinuv";
a.append(" loves");
a += " somebody";
for(auto it = a.begin(); it != a.end(); it++) {
cout << *it << " ";
}
return 0;
}
判断前缀和后缀(这两个是C++20才有的方法,较早版本无次方法)
使用start_with()和end_with()来判断前缀和后缀
#include <iostream>
#include <string>
using namespace std;
int main() {
string a = "Tinuv";
a.append(" loves");
a += " somebody";
cout << a.starts_with("Tinuv") << "\n";
cout << a.ends_with("somebody") << "\n";
for(auto it = a.begin(); it != a.end(); it++) {
cout << *it << " ";
}
return 0;
}
替换
使用索引即可,第一个参数是开始位置,第二个参数是替换的个数,第三个参数是要提换的字符
#include <iostream>
#include <string>
using namespace std;
int main() {
string a = "Tinuv";
a.append(" loves");
a += " somebody";
a.replace(0, 5, "dh");
for(auto it = a.begin(); it != a.end(); it++) {
cout << *it << " ";
}
return 0;
}
求子串
#include <iostream>
#include <string>
using namespace std;
int main() {
string a = "Tinuv";
a.append(" loves");
a += " somebody";
string sub = a.substr(0, 5);
cout << sub << "\n";
for(auto it = a.begin(); it != a.end(); it++) {
cout << *it << " ";
}
return 0;
}
??正文结束??

1317

被折叠的 条评论
为什么被折叠?



