Программа должна убирать лишние пробелы, посмотрел в отладчике, программа работает вроде норм, но потом где-то ломается и выдает ошибку, если кто-то знает из-за чего и что надо исправить, заранее спасибо.
int main()
{
setlocale(LC_ALL, "rus");
string str1("Алексей Игорь Валентин Егор ");
string str2;
int count = str1.size();
int prb = 0;
str2.swap(str1);
for (int i = 0; i < count; i++)
{
if (int(str2[i]) == 32 || int(str2[i]) == -50)
{
for (int a = i; a < count; a++)
{
if (int(str2[a]) != 32 && int(str2[a]) != -50)
{
break;
}
prb++;
}
for (int d = 0; d < prb - 1; d++)
{
str2.erase(i + d, 1);
}
}
prb = 0;
}
cout << str2 << endl;
}
Проблема в том, что erase
изменяет размер строки, но это не учитывается в условии цикла. Также счетчик внутриннего цикла должен начинаться с i + 1
. Еще можно не писать erase
в цикле, так как можно просто передать вторым аргументом количество удаляемых символов.
PS. Ваш алгоритм оставляет один пробел после последнего слова.
Вот немного отредактированный код:
#include <iostream>
#include <string>
int main()
{
std::string str1("Alex Olya Bob ");
std::string str2 = str1;
int prb = 0;
for (int i = 0; i < str2.size(); i++)
{
if (str2[i] == ' ')
{
for (int a = i + 1; a < str2.size(); a++)
{
if (str2[a] != ' ')
{
break;
}
prb++;
}
str2.erase(i, prb);
}
prb = 0;
}
if (str2.back() == ' ') // Удаление последнего пробела
str2.pop_back();
std::cout << str2 << std::endl;
return 0;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Решил разобраться в трассировке лучейДля начала думаю все это дело реализовать чисто на процессоре, то есть при помощи обычного C++ кода, а затем...
После определенного количества посланных пакетов (отправляю части файла размером по 128 байт) этот код перестает принимать пакеты от клиентаКак...
Я написал код в соответствии с алгоритмом, но результат неверенСогласно алгоритму, мы должны указать размер матрицы и вручную заполнить...
Проблема такова : исполняемый файл готового приложения запускается вместе с консолью позадиПараметр "Run in terminal" снят, приложение создано...