文档详情

0-C++字符串操作.docx

发布:2017-07-28约1.55千字共3页下载文档
文本预览下载声明
1 C++字符串和C字符串的转换C ++提供的由C++字符串得到对应的C_string的方法是使用data()、c_str()和copy(),其中,data()以字符数组的形式返回字符串内容,但并不添加’\0’。c_str()返回一个以‘\0’结尾的字符数组,而copy()则把字符串的内容复制或写入既有的c_string或字符数组内。C++字符串并不以’\0’结尾。我的建议是在程序中能使用C++字符串就使用,除非万不得已不选用c_string。2?大小和容量函数????一个C++字符串存在三种大小:现有的字符数,函数是size()和length(),他们等效。Empty()用来检查字符串是否为空。3元素存取????我们可以使用下标操作符[]和函数at()对元素包含的字符进行访问。但是应该注意的是操作符[]并不检查索引是否有效(有效索引0~str.length()),如果索引失效,会引起未定义的行为。而at()会检查,如果使用at()的时候索引无效,会抛出out_of_range异常。?4比较函数????C ++字符串支持常见的比较操作符(,=,,=,==,!=)?5?更改内容一个赋值方法当然是使用操作符=string提供了很多函数用于插入(insert)、删除(erase)、替换(replace)、增加字符。先说增加字符(这里说的增加是在尾巴上),函数有?+=、append()、push_back()。举例如下:s=s+ch;s+=str;//加个字符串s+=”my name is jiayp”;//加个C字符串s+=’a’;//加个字符s.append(str);s.append(str,1,3);//不解释了同前面的函数参数assign的解释s.append(“my name is jiayp”);s.append(5,’x’);??? ? //添加5个字母xs.push_back(‘a’);需要在string中间的某个位置插入字符串,这时候你可以用insert()函数,这个函数需要你指定一个安插位置的索引,被插入的字符串将放在这个索引的后面。????s.insert(0,”my name”);????s.insert(1,str);删除函数erase(),替换函数replace()。举例吧:string s=”il8n”;s.replace(1,2,”nternationalizatio”);//从索引1开始的2个替换成后面的字符串s.erase(13);//从索引13开始往后全删除s.erase(7,5);//从索引7开始往后删5个6提取子串和字符串连接提取子串的函数是:substr()。形式如下:s.substr();????? ? //返回s的全部内容s.substr(11);? ? //从索引11往后的子串s.substr(7,6); ? //从索引7开始6个字符?7输入输出操作1.?从输入流读取一个string。2.?把一个string写入输出流。另一个函数就是getline(),他从输入流读取一行内容,直到遇到分行符或到了文件尾。8搜索与查找查找函数很多,功能也很强大,包括了:????find()????rfind()这些函数返回符合搜索条件的字符区间内的第一个字符的索引,没找到目标就返回npos。最后再说说npos的含义,string::npos的类型是string::size_type,所以,一旦需要把一个索引与npos相比,这个索引值必须是string::size)type类型的,更多的情况下,我们可以直接把函数和npos进行比较(如:if(s.find(“jia”)== string::npos))。
显示全部
相似文档