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 ответов

8 просмотров
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🔥
Это кстати не работает

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

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

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

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
@ahndmn @ayaw0_0 здарова, на чем пишете?
Aiwan \ (•◡•) / _bot
7
Коллеги, как получить PId для собственного процесса из под линукса?
Роман Лях (rgreat)
6
Карта сайта