所以我有一个名为 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 和 string 正确启动。