介绍:
由于subtr()和find()都是字符串即string类中的方法,因此只有string的对象才可以调用,包括字符型数组和字符指针都不能调用
一、subtr()方法
该方法用来进行字符串的切割,方法需要传递两个参数,一个参数时切割的起始位置,一个参数时切割的结束位置(从起始位置开始包含起始位置,到结束位置结束不包含结束位置,到结束位置的前一个位置,前包后不包)
//substr介绍(返回局部字符串)
string t = "qwer";
string copy = t.substr(0,1);!!!!返回q !!!!!
//从第一个参数的位置到第二个参数的位置(前包后不包)
二、find()方法
用来进行字符串中局部字符或局部字符串的查找,方法返回一个位置(int)
//find介绍(返回位置即数字)
string d = "qwer";
cout << d.find('q');//第一种形式,将字符作为函数参数,返回字符在字符串中所在的位置
cout << d.find("qw");//第二种形式,将字符串作为函数参数,返回代查字符串在原来字符串中的位置,也是代差字符串的第一个字符在原字符串的位置
cout << d.find("s");///当不存在时,返回4294967295
cout << d.find("r",3);//第三种形式,多加一个参数表示从原字符串的该位置开始进行查看,即为d[3]的位置往后查是否存在待查字符串
三、subtr()方法和find()方法在文本数据输入时的妙用
两个方法搭配可以完成对于一行数据的选择性读入,既可以巧妙的去除逗号,又可以选取每行局部的数据,而非将一行作为一整个字符串读入。
1、设置一个Begin变量记录读取的首位置
2、再设置一个End变量记录读取的结束位置
3、find()方法查找到分隔位置
4、想读取分割位置之前的位置:substr(Begin,(find()-Begin))
5、想读取分隔符之后的位置,再调用find()查找下一个分割位置如逗号、分号、换行符、空格等等
6、substr(Begin,(find()-Begin))以此类推
//该案例时读入
#include
#include
#include <string>
#include
//数据格式