当前位置: 代码迷 >> 综合 >> c++中getline、substr、find的用法
  详细解决方案

c++中getline、substr、find的用法

热度:30   发布时间:2023-11-01 21:49:47.0

一、getline

功能:读入一行数据。

c++中有2种getline函数,

  1. 在头文件 <istream> 中,是istream类的成员函数;
  2. 另一种是在头文件 <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函数主要功能:复制子字符串,要求从指定位置开始,并具有指定的长度

用法substr(start,length)

  • 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        //查找对象--字符

 结果

  1. 找到 -- 返回 找到的第一个字符的索引
  2. 没找到--返回   string::npos
  • 如果 text 是空文本 (),则 find 则会返回数值1。
  • text 中不能包含通配符。
  相关解决方案