1. Список говнокодов пользователя bugaga_

    Всего: 1

  2. C++ / Говнокод #4608

    +156

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    char* setw_c(int width, char* str, const char align){
        width = width - strlen(str) / 2; 
    
        if (align == 'l'){
            std::cout << str;
            if (width > 0)
                for (int i = 0; i < width - 1; i++)
                    std::cout << " ";
    		return " ";
        } else {
            if (width > 0)
                for (int i = 0; i < width; i++)
                    std::cout << " ";
    		return str;
        }
    }

    вот так коряво я решил проблему с setw(), кириллицей и utf-8.
    strlen() - чуть ли не единственная функция из cstring, более-менее нормально работающая с кириллицей в utf-8, да и то возвращает не реальную длину, а в два раза бОльшую, т.к. в utf-8 символ кириллицы занимает 2 байта, вместо одного, чего эта функция не учитывает.

    bugaga_, 13 Ноября 2010

    Комментарии (8)