C++对于C语言具有良好的兼容,C语言语法格式的字符串仍可以在C++程序中使用,C++本身则提供了string类实现相关的操作。同时,在头文件string中,也提供了将两种语法格式的“字符串”相互转换的函数。
C语言 和 C++ 字符串格式的转换//C语言和C++之间的相互转换 //C语言转换为C++ const char* s_c = "string_c."; string s_cplus(s_c);//将C语言的字符串转换为string类 string s_cplus_2 = "string_cpuls"; const char* s_c_2 = s_cplus_2.c_str();//将string类转换为C语言字符串输入输出
//输入字符串 cin>>s; //输出字符串 cout<获取字符串的长度len=s.length();不同字符串的拼接C++的string类相较于C语言字符串提供了更加便捷的方式,即直接使用“+”运算符实现两个字符串的拼接,且string类的拼接,不用担心数据溢出而事先预设存储空间。
//两个string的拼接 string S4 = S1 + S2;字符串的删减//字符串的增删 //在指定位置插入字符串 S1.insert(4, "_insert_");//在指定位置为4的地方插入指定内容 //删除指定位置的字符串 S1.erase(5);//删除下标5之后的所有元素 S2.erase(5, 5);//删除下标5之后的5个元素提取子字符串//提取子字符串 S1 = S2.substr(4, 5);//起始下标为4,提取字串长度为5查找子串//查找子串 int index = S1.find(S2, 0);//从下标0开始,查找S1中S2所在位置除find()函数外,rfind()函数也作为字串查找函数,不同之处在于,第二个参数为结束的下标位。
其他
而find_first_of()返回的子串返回的第一个位置。string类中封装了大量的字符串操作函数,除上述提到的内容外,还包括,交换两个字符串swap(), 替换字符replace(), 返回字符数量size(), length, 判断字符串是否为空empty(), 单一字符读取at(), 比较函数compare(), 可存放的最大字符数max_size()等等,可以根据实际情况加以选择。



