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<<s<<endl;
获取字符串的长度
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()等等,可以根据实际情况加以选择。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)