gpt4 book ai didi

c++ - 需要读取文本文件 C++ 中某些字符之间的文本

转载 作者:太空宇宙 更新时间:2023-11-04 11:56:56 25 4
gpt4 key购买 nike

所以我有一个名为 Names.txt 的文本文件,它有 20 000 行。一行的例子看起来像这样

"niineve","1 Mo.","VT","1 Mo. 10:12"
"nimrod","1 Mo.","VT","1 Mo. 10:8"
"nimrod","1 Mo.","VT","1 Mo. 10:9"
"noa","1 Mo.","VT","1 Mo. 5:29"

仅供引用目前我有一个代码,我可以在其中输入一个名称并查找它在文件中出现了多少次。

现在我需要以某种方式输出 Mo 部分,我在文件中有大量音节,例如“Ilm.”、“Mo.”、“Sj.”、“Sk.”。我需要得到一个必要的输出,但我现在不会说得太具体。

我的问题:有没有一种方法可以从第一个大写字母(包括)开始并以第一个句点(不包括)结束的行中获取字符。

所以如果我在文本文件中的行是

"hiskija","2 Ku.","VT","2 Ku. 20:8" 

那么输出将是 Ku,因为 K 是第一个大写字母,而 Ku 后面是一个句点。如果不能,你能建议我如何从那个地方得到一个音节(2-3 个字符)的另一种方法,我想也许我可以从符号“,”和。之间得到。所以如果这些行是

"niineve","1 Mo.","VT","1 Mo. 10:12" 

我会得到 1 Mo 的输出,但我没有使用任何可以做到这一点的命令的经验。

编辑:这就是我现在拥有的

ifstream file ("Names.txt");

int i;
for (i = 0; i < book.length(); ++i) {
if ('A' <= book[i] && book[i] <= 'Z') break;
}

string start = book.substr(i);
getline(file, start, '.');
cout << start;

它成功地从一行的开头读取到第一个句点“。”但我还没有设法把起点放在第一个大写字母上。我想我没有正确声明 i 和字符串开始。

最佳答案

使用getline函数可以读取到特定字符的数据

getline(file,str,delimiter);

这将写入字符串“str”中的所有内容,直到找到分隔符(在您的例子中为“.”)。

然后你只需要遍历字符串并找到第一个大写字母,比如

int i;
for (i = 0; i < str.length(); ++i) {
if ('A' <= str[i] && str[i] <= 'Z') break;
}

变量“i”现在包含起始索引,您现在要做的就是提取适当的替代

str.substr(i) // from 'i' all the way to the end

关于c++ - 需要读取文本文件 C++ 中某些字符之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15864941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com