如何在C 中使用字符串作为getline()函数中的分隔符

How to use string as a delimiter in getline() function in c++

本文关键字:getline 函数 分隔符 字符串      更新时间:2023-10-16

我有结构成员,该结构成员从xml.中获取定界符的值,并且我想将该结构成员用作分隔符。但是,当getline()功能以char为char时,我我被困在那儿。

istream& getline (istream& is, string& str, char delim)

我在代码中完成了以下操作: -

string ABC = struct.delimiter;    // Here struct.delimiter is takes value of
                                     d delimiter from XML delimiter = '='  

我想用作

getline(string1,string2, ABC);

有可能吗?或者还有另一种方法吗?

您无法通过getline实现这一目标,我知道这样做的最好方法是获取行,将其存储在字符串中,然后使用find()函数查找您的定界符。

string string; // Your line
string ABC = struct.delimiter; // Delimited
getline(input, string); // Get line from stream - Thx Kevin
string subStr = str.substr(0, str.find(ABC)); // this will get you the first segment

从这里您可以开发循环以浏览读取数据并找到所有段。

如果保证ABC是一个长度的单个字符,则可以使用ABC[0]从字符串中获取第一个字符:

getline(string1, string2, ABC[0]);

或只是使ABC成为char,以使其更加明显。

char ABC = struct.delimiter; // (assuming struct.delimiter is also a char,
                             //  if not use srtuct.delimiter[0])
getline(string1, string2, ABC);