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

Я теряю волосы прямо сейчас. У меня есть строка, которой я манипулирую, чтобы начать новую строку / предложение после пунктуации, но я не могу понять, как я могу использовать заглавные буквы в первом слове каждого предложения? За исключением этого, я не могу выйти из цикла, чтобы изменить точку на точку и новую строку.

int main()
{
string const txt1 = "Candy is good for your health.";
string const text2 = "All kids should buy candy.";
string const text3 = "Candy nowadays is a hit among kids.";
string const text4 = "Every meal should include candy.";string text = text1 + text2 + text3 + text4;

transform(text.begin(), text.end(), text.begin(), ::tolower);

while (text.find("candy") != string::npos)
text.replace(text.find("candy"), 3, "fruit");
string_replace_all(text, ".", ".\n");

Это то, что я добавил до сих пор:

string line, total = ""; istringstream stream(text);
while (getline(stream, line, '\n'))
{
if (line.size() > 0)
total += (char)toupper(line[0]) + line.substr(1) + "\n";
else total += "\n";
}

-2

Решение

Очень простой способ это было бы:

string line, total = ""; istringstream stream(someString);
while(getline(stream, line, '\n'))
{
if(line.size() > 0)
total += (char)toupper(line[0]) + line.substr(1) + "\n";
else total+= "\n";
}

Надеюсь это поможет.

0

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

Других решений пока нет …

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