字符串操作的全面总结

字符串操作看似简单 , 其实非常重要 , 不注意的话 , 经常出现代码运行结果和自己想要的不一致 , 甚至崩溃 。 本文总结了一些构建string对象方法、修改string对象的方法、string类型的操作函数、string类型的查找、string对象的比较 。
1 构建string对象方法
【字符串操作的全面总结】首先 , 为了在我们的程序中使用string类型 , 我们必须包含头文件。 如下:
include
string Str 。
这样我们就了一个字符串变量 , 但既然是一个类 , 就有构造函数和析构函数 。 上面的没有传入参数 , 所以就直接使用了string的默认的构造函数 , 这个函数所作的就是把Str初始化为一个空字符串 。
String类的构造函数和析构函数如下:
代码实例:
include
include
using namespace std 。
//20200527 字符串操作 C语言与CPP编程
int main
string s1 。
cout cout cout string s4(s3.begin , s3.begin+(s3.size)/2) //定义s4用迭代器做参数 , 从第一个迭代器s3.begin
char no_null = {“H”“e”“l”“l”“0”}; //最后没有空字符/0 , 不算C语言字符串 , 只是字符数组
string ss1(cp)
cout cout cout string ss5(no_null , 2) //这次取2个就知道什么时候结束 , 不会出错
cout cout << s1 << endl; //s1输出Hello
string s6(s1 , 2)
cout << s6 << endl; //用s1初始化s6 , 2表示字符下标 , 从第二个字符开始到最后 , s6为llo
string s7(s1 , 0 , 2)
cout << s7 << endl; //从s10开始取2个 , s7为He
string s8(s1 , 0 , 8)
cout << s8 << endl; //从s1的第一个开始取8个 , 不够8个就结束 , s8为Hello
return 0 。
** 运行结果**:
字符串操作的全面总结
文章图片

2 修改string对象的方法
与容器共有的 string 操作:
代码实例:
include
include
using namespace std 。
int main
string s“hello” 。
string s2“abcdef” 。
string:iterator p = s.begin; //迭代器p
s.insertp , “A”; //在迭代器p指向的s开始之前插入A
cout << s << endl; //s为Ahello
s.insertp , 3 , “B”; //p指向返回的Ahello的A处 , 在A之前插入3个B
cout << s << endl; //s为BBBAhello
string:iterator b = s2.begin; //迭代器b
string:iterator e = s2.end; //迭代器e
//p = s.begin; //p指向s
s.insert(p , b , e) //在p指向的s之前插入b和e迭代器范围内的元素abcdef
cout << s << endl; //s为abcdefBBBAhello
s = “hello”
cout << s << endl; //s为hello
cout << s << endl; //s为abcdef
s.assign8 , “K” 。
cout << s << endl; //s为KKKKKKKK
p = s2.begin; //迭代器p指向s2的a
s2.erase(p) //删除迭代器p指向的元素a
cout << s2 << endl; //s2为bcdef
p = s2.begin; //a被删除 , p指向b
p++; //指向c
p++; //指向d
string:iterator p2 = s2.end; //p2迭代器指向f
p2--; //指向e
s2.erase(p , p2) //删除p指向的d和p2指向的e之间的元素


推荐阅读