170 похожих чатов

Я вот вродебы написал прога для удаления лишних пробелов: #include <iostream>


#include <string>

using namespace std;

int main(){
string s;
getline(cin, s);

for (int i = 0; i<s.length();i++){
    if (s[i] == ' ' && s[i+1] == ' ') {
s.erase(i,1);
i = i-1;
}

cout << s<< endl;
}
return 0;
}
- но компилятор cpp.sh говорит :In function 'int main()': 10:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] (я пока что не имею доступа к ноуту). Что не так?

22 ответов

15 просмотров
Sergo Zar-(Teamanager) Автор вопроса

Вот ссылка http://cpp.sh/85enp на страницу с моим кодом

Sergo Zar-(Teamanager) Автор вопроса

Я смотрел на примеры с инета и "склеил" всё что было попроще) возможно и с условием перестарался

string::length() возвращает size_t, а у i тип int Вот он и ругается, что сравниваем знаковое и беззнаковое число

Sergo Zar (Teamanager)
Я смотрел на примеры с инета и "склеил" всё что бы...

Погодите, мне кажется, я не понял суть программы))) Вы хотели лишний пробел удалять или вообще все пробел?

Sergo Zar (Teamanager)
хочу удалить только лишние

прошу прощения, не так вас понял, ахахах

Sergo Zar-(Teamanager) Автор вопроса

это там где erase? я наверное забыл о s[]

Sergo Zar (Teamanager)
это там где erase? я наверное забыл о s[]

Не, вообще забудьте это сообщение, я не по теме написал совершенно 🙂

это не ошибка, это предупреждение только

Sergo Zar (Teamanager)
это там где erase? я наверное забыл о s[]

Код Ваш работает правильно, вроде, так что все окей должно быть

i объяви unsigned, не будет предупреждения.

Sergo Zar-(Teamanager) Автор вопроса

Что?

Sergo Zar (Teamanager)
unsigned string s?

Переменную I i ииииии Ай латинская цифра один

проверяй на std::isspace https://en.cppreference.com/w/cpp/string/byte/isspace

Dmitriy Kushnaryuk
проверяй на std::isspace https://en.cppreference.c...

int main() { std::string str = "Hello string with space"; for(auto i = 0; i < str.size(); i++) if(std::isspace(str.at(i))) { str.erase(i,1); i--; } std::cout << str; return 0; }

Dmitriy Kushnaryuk
int main() { std::string str = "Hello string w...

std::remove_if(std::begin(str), std::end(str), [](char c){ return std::isspace(c);});

Danya🔥
Это кстати не работает

Уверен? Я вот на экран смотрю и у меня другая информация

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта