一、getline
功能:读入一行数据。
c++中有2种getline函数,
- 在头文件 <istream> 中,是istream类的成员函数;
- 另一种是在头文件 <string> 中,是普通函数。
1.头文件 <istream> 的getline函数
两种重载形式:
istream& getline (char* s, streamsize n ); //读取最多n个字符保存在s对应的数组中,即使大小不够n,
istream& getline (char* s, streamsize n, char delim ); //读取最多n个字符保存在s对应的数组中,遇到delim,或者读完一行,或字数达到限制则终止
ps: 最多读取n个字符中结束字符算一位。
2.在头文件<string>中的getline函数
(1)
getline ( is, str, delim);
getline ( is, str, delim);
(2)
getline ( is, str);
getline ( is, str);
说明:
- is:表示一个输入流,例如 cin。
- str:用来存储输入流中的信息
- delim:自定义结束字符,默认是 '\n '
二、substr
substr函数主要功能:复制子字符串,要求从指定位置开始,并具有指定的长度
用法:
- start : 开始复制的位置,下标
- length: 复制的长度
三、find
功能:
find函数用来对原始数据中某个字符串进行定位,以确定其位置。
find函数进行定位时,总是从指定位置开始,返回找到的第一个匹配字符串的位置,而不管其后是否还有相匹配的字符串。
用法:
(1) find ( string& str, pos ) //查找对象--string类对象
pos 为指定开始进行查找的字符数。比如为1,则从单元格内第一个字符开始查找关键字。如果忽略,则默认其为 1。
来个伪代码:
string s("wdfhhrde134524fesferrhrhjbemtfrg");
string position;//从字符串s 下标3开始,查找字符串 e ,返回 e 在字符串s 中的下标position=s.find("e",3);
(2)find (const char* s, pos ) //查找对象--字符串
(3)find (const char* s, pos, n) //查找对象--字符串的前n个字符
(4) find (char c, pos = 0) const //查找对象--字符
结果:
- 找到 -- 返回 找到的第一个字符的索引
- 没找到--返回 string::npos
- 如果 text 是空文本 (),则 find 则会返回数值1。
- text 中不能包含通配符。