Я хочу использовать toupper
на каждом char
после пункта .
в string
. Я пробовал этот код, но я получаю черный экран при запуске программы, если я использую оператор +
.Не могу получить строку :: size_type + int, чтобы сделать toupper
string fulltext = "my name is John. i have a girlfriend. her name is Anna";
string::size_type idx = 0;
while ((idx = fulltext.find(".")) != string::npos)
{
if (idx != string::npos)
{
fulltext[idx + 2] = toupper(fulltext[idx + 2]);
}
}
cout << fulltext << endl;
Определения «Это не работает». В дополнение к этому, вы пытались использовать отладчик? –
Наверное, потому что не происходит инкремента idx, поэтому вы получите бесконечный цикл, в котором вы задаете символ «i» в «. I have» на верхнем. Возможно, вы захотите использовать idx = fulltext.find (".", Idx + 1) – Nonanon
Кроме того, некоторые другие проблемы в вашем коде: 1) ваше предложение 'if' не требуется, поскольку такое же условие проверяется в' while ', и если вы находитесь в цикле, это уже« истина ». 2) Если 'idx' представляет действительный индекс в вашей строке, он не означает, что автоматически означает, что' idx + 2' будет представлять собой действительный индекс. –