在 C++ 的文本中查找单词
find words in a text in c++
假设有一个文本文件,其中包含休耕样式的以下内容:
name: natalie, sarah
surname: parker
age: 24
contry: dubai
我想得到natalie
和sarah
作为名字,parker
作为姓氏等等。在此之后,在我的代码中的某个地方,我需要变量名称,姓氏,年龄(如natalie,sarah,parker,24等)。
我认为,首先我需要读取文件并将其存储在数组中,然后使用分隔符对其进行解析:"(空格)或":"以解析<surname: parker>
这个,并且还使用","逗号作为分隔符以解析<natalie, sarah>
。
我可以将文本存储在数组中或使用 getline(textfile, size) 来获取行,因为我每次只需要一行。你认为哪个最合适?我们如何进行解析?
你离目标很近。我只有一点建议:
- 使用 std::map 存储文件中的数据 使用
- while 循环从文件中获取每一行,使用 split 或 boost::按
:
拆分字符串来获取键和值并将它们存储在 map 中。
使用正则表达式更轻松地求解它。像这样的模式:"name:([\w,]+)surname(\w+)"
我可以想到这样的东西(简化;没有错误检查或优化等;这是未经测试的,但应该可以工作):
std::ifstream file(myfile);
std::string line;
std::map<const std::string, std::string> dataset;
while (file >> line) {
size_t var_start = line.find_first_not_of(" t"); // get beginning of the variable name
size_t var_end = line.find_first_of(":"); // get the end of the variable name
if (var_start == std::string::npos || var_end == std::string::npos) // any not found?
continue; // skip this line
std::string var_name = line.substr(var_start, var_end - var_start); // get the variable name
std::string var_value = line.substr(var_end + 1); // get the variable content
// now do something, e.g. safe it
dataset[var_name] = var_value;
}
相关文章:
- 在C++中查找(奇怪的)字符串中的单词
- 从文件中查找单词并替换到其他文件中
- 在文本中查找半个单词"ABBA"的问题
- C++:如何用split查找单词?Regex
- 如何创建一个函数,该函数在文本中查找单词的匹配项,包括跳过
- Qt使用QWebEngine查找单词功能
- 单词搜索难题:如何搜索一系列字母来查找单词
- 在字典中查找单词模式,高性能
- 查找单词最多的行并将其输出到文本文件中.C++
- 在句子中查找单词
- C++帮助:使用数组和循环在文本中查找单词
- 使用字符串查找单词的正确方法是什么
- 在文件中查找单词
- 如何使用' string::find '通过C++在文件中查找单词
- C++在不带Regex的字符串中查找单词
- 在矢量<string> cocos2d-x 中查找单词
- 通过语音在字典中查找单词
- 搜索数组以查找单词的单独实例
- 在 C++ 的文本中查找单词
- C++ 我们如何从文本文件中查找单词的每一行