Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: [c++] есть ошибка но нет решения  (Прочитано 2435 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mkarasik

  • Участник
  • *
  • Сообщений: 163
    • Просмотр профиля
Re: [c++] есть ошибка но нет решения
« Ответ #15 : 17 Октября 2010, 20:12:24 »
Месье знает толк в извращениях.

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: [c++] есть ошибка но нет решения
« Ответ #16 : 17 Октября 2010, 22:15:17 »
И не слушай никого, пока не научишься руками (по одному карактеру в цикле) строки обрабатывать нефиг тебе в C++ лезть, в его классы.

А то понавырастало, мля,  программистов, которым уже и 4-х ядерных процессоров мало. Понаворотят 3 десятка классов вокруг одного флага и считают это тру OOB С++.
Никого не хотел обидеть, но не нужно человеку STL пихать, если он еще по массиву ходить не умеет.
Если мсье пытается плюнуть в мой огород, то мсье должен был бы обратить внимание на два предложенных варианта решения описанной ТС проблемы. ТС хотел Си++ — получил Си++... После намёка на то, что ничегошеньки непонятно, был предложен и вариант на Си, который, насколько я понимаю, был просто проигнорирован.

Автору, по поводу возвращения строки — прошу в поиск, недавно нечто похожее обсуждалось.

Оффлайн mkarasik

  • Участник
  • *
  • Сообщений: 163
    • Просмотр профиля
Re: [c++] есть ошибка но нет решения
« Ответ #17 : 18 Октября 2010, 00:26:59 »

Если мсье пытается плюнуть в мой огород

Никаких попыток плюнуть не было. Честно честно. :)  Извини код на си не увидел. Как раз то, что я после описал словами позже. Но только в прок не пошло, судя по следующему посту топикастера.

Ну и если уж пошла речь про огороды. То вот это

int is_forbidden(char c)
{
    char forbidden[3] = {10, 13, 32};
    int i = 0;
    int found = 0;
    for (i = 0; i<strlen(forbidden); ++i)
    {
        if( c == forbidden[i])
        {
            found = 1;
            break;
        }   
    }
    return found;
}

лучше писать так

int is_forbidden(char c)
{
    char forbidden[3] = {'\r', '\n', ' '};
    int i = 0;
    for (i = 0; i<sizeof(forbidden); ++i)
    {
        if( c == forbidden[i])
        {
            return 1;
        }   
    }
    return 0;
}

Бага маленькая была со стрленом :) Ну и вариант с 3-мя ифами как у топикастера работать быстрее будет. Заодно можно и тему закрыть, а то флуд начался уже.
« Последнее редактирование: 18 Октября 2010, 00:37:35 от mkarasik »

Оффлайн Kwah

  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: [c++] есть ошибка но нет решения
« Ответ #18 : 21 Октября 2010, 01:18:04 »
Вот тут мне посетовали...
int is_forbidden(char c)
{
    char forbidden[3] = {10, 13, 32};
    int i = 0;
    int found = 0;
    for (i = 0; i<strlen(forbidden); ++i)
    {
        if( c == forbidden[i])
        {
            found = 1;
            break;
        }   
    }
    return found;
}

ЗачОтный велик. man strchr =)

И никто ему не сказал что Си и С++ разные языки =(
А так да, уже кем-то закрыто.

 

Страница сгенерирована за 6.155 секунд. Запросов: 25.