1. C++ / Говнокод #17176

    +49

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    for (int i = 0; i <= 10000; i++)
    {
    if (a[i]=='a')
    a[i] == "000";
    continue;
    }

    Цикл, который в строке a меняет все символы 'a' на три ноля. Говнолабка одногруппницы.

    Запостил: b2soft, 25 Ноября 2014

    Комментарии (28) RSS

    • Описание переменной a в студию!
      Ответить
      • http://ideone.com/WVrs5U

        Ничего страшного, что я выбрал Object Pascal?
        Ответить
      • Например при
        std::string a[10000];
        Может сработать :)
        Ответить
        • Хм, и правда компилится. Я не знал, что есть конструктор и оператор = с одним чаром, каюсь.
          Ответить
          • >> a[i] == "000";
            > Хм, и правда компилится.
            Что-то я не понял, о чём тут вообще говорят. И только ОП намекает http://govnokod.ru/17176#comment256357
            Разве что на самом деле автор планировала писать как-то так: http://ideone.com/hovcm8
            Ответить
            • > Что-то я не понял, о чём тут вообще говорят.
              Ну == вместо = поюзали. И с типизацией траблы - "000" в char не влезет.
              Ответить
              • Мне показалось, что про == слишком мало говорили.
                Ответить
                • А что о нем говорить? Это ж типичная сишкопроблема, о которой все уже наслышаны.
                  Ответить
                  • Подумаешь, проблема! Вот в PHP == представляет собой настоящую проблему!
                    Ответить
    • int main()
      {
      ofstream fout; // определение обьекта fout для вывода данных в файл
      ifstream fin;
      
      char a[10000];
      
      fin.open("in.txt");
      
      fin.getline(a, sizeof(a)); // getline – читает строку из файла до символа перевода строки char(10)
      
      fin.close();
      cout « a « endl;
      for (int i = 0; i <= 10000; i++)
      {
      if (a[i]=='a')
      a[i] == "000";
      continue;
      }
      Ответить
      • Не скомпилится же. А некомпилящиеся лабы одногруппниц на ГК нинужны.
        Ответить
      • >cout « a « endl;
        (смотрит)
        Откуда скопировал такие мажорные сдвиги, мил человек?
        Ответить
        • Ворд? :)
          Ответить
          • Быдляцтвом тянет за 1 км, да. Еще на всяких сайтиках типа вк автозамена стоит.
            Ответить
          • Вэкашечка, инфа 100%
            Ответить
            • OMG! Triple hivemind!
              По меркам ГК, как мелкозаселённого слоу-форума эпично.
              Ответить
              • Раз люди знают об этой фиче - значит они постили/видели код во вконтактике. И это грустно.
                Ответить
                • везет, что вы еще не знаете, как она объясняет свои действия
                  Ответить
        • vk.com заменяет же :)
          Ответить
      • Ответить
    • а присваивание-то какое. Железно работает
      Ответить
      • А continue-то какое. Железно работает
        Ответить
        • #define continue break         // Счастливой отладки, подружка!
          Ответить
          • void replace_a_by_000(char * s, bool replace_all)
            {
                if (!replace_all) {
                    #define continue break
                } else {
                    #undef continue
                }
            ...
            }
            Ответить
            • #define REPLACE_A_BY_000(s, next) \
              do { \
                  for (size_t i=0; i<=10000; ++i) { \
                      if ((s)[i] == 'a') { \
                          (s)[i] == '000'; \
                          next; \
                      } \
                  } \
              } while (0)
              Ответить
              • Ну и использовать как: REPLACE_A_BY_000(s, break) или REPLACE_A_BY_000(s, continue)
                Ответить
                • Ну вот, и в этот раз в сишечке не удалось обойтись без костылей. А так хотелось получить нормальную функцию, а не макрос!
                  Ответить
                  • Не макрос.
                    struct replace_all; struct do_not_replace;
                    template<typename replace_all>
                    void replace_a_by_000(char * s);
                    template<>
                    void replace_a_by_000<replace_all>(char * s){ ... }
                    template<>
                    void replace_a_by_000<do_not_replace>(char * s){ ... }
                    Ответить

    Добавить комментарий