Как прописать в верхнем регистре все первые буквы символов предложений после указанного разделителя в текстовом файле?

Как и в заголовке, у меня есть текстовый файл, в котором практически нет заглавных букв, поэтому все предложения выглядят некорректно без заглавной буквы. Вот мой код до сих пор:

    //This program reads an article in a text file, and changes all of the
//first-letter-of-sentence-characters to uppercase after a period and space.
#include <iostream>
#include <fstream>
#include <string>
#include <cctype>//for toupper
using namespace std;

int main()
{
//Variable needed to read file:
string str;
string input = str.find('.');//Open the file:
fstream dataFile("eBook.txt", ios::in);
if (!dataFile)
{
cout << "Error opening file.\n";
return 0;
}
//Read lines terminated by '. ' sign, and then output:
getline(dataFile, input, '. ');//error: no instance of overloaded function "getline"//matches the argument list
//argument types are:(std::fstream, std::string, int)
while (!dataFile.fail())
{
cout << input << endl;
getline(dataFile, input);
}
//Close the file:
dataFile.close();
return 0;
}

.
ПРИМЕЧАНИЕ. Я знаю, что в моем коде пока нет ключевого слова toupper. Я пока не знаю, где его установить.

0

Решение

Вместо этого

    getline(dataFile, input, '. ');
while (!dataFile.fail())
{
cout << input << endl;
getline(dataFile, input);
}

Вы можете изменить его на

    while(getline(dataFile, line, '.'))
{
for(auto &i : line )
{
if(!isspace(i))
{
i = toupper(i);
break;
}
}
outFile<<line<<".";
}

PS: Я бы предпочел использовать RegEx для такого рода проблем.

0

Другие решения


По вопросам рекламы [email protected]