Анамалии с кодировкой

Тема в разделе "Общие вопросы по С и С++", создана пользователем Fuzzi, 21 сен 2005.

Статус темы:
Закрыта.
  1. Fuzzi

    Fuzzi Гость

    Добрый день. Помогите, пожалуйста, разобраться с одной проблемой.
    Требуется написать программу на С для перевода русских символов в верхний регистр.
    Написал функцию.
    char rusToUp(char ch){
    int code;
    int chars = ((int)ch);
    if ( chars>= 160 && chars<=175 ){
    code = ( chars - 32 );
    }
    else if ( chars>=224 && chars<=239 ){
    code = ( chars - 80 );
    }
    return ch;
    }
    Проблема в том , что ansi код русских символов выводиться(у меня) как отрицательное число, из –за этого функция не работает в чем может быть причина ?
    #include <stdio.h>
    int main(void){
    printf(“Э = %d\n”,(int)’Э’) //выводиться -35 в чем причина ?
    printf(“В = %d\n”(int)’в’) //выводит -30
    return 0;
    }
     
  2. ????

    ???? Гость

    printf(“Э = %d\n”,(int)’Э’) => printf(“Э = %c\n”,(int)’Э’) ????
     
  3. DAle

    DAle Гость

    <!--QuoteBegin-Fuzzi+20:09:2005, 23:50 -->
    <span class="vbquote">(Fuzzi @ 20:09:2005, 23:50 )</span><!--QuoteEBegin-->Добрый день. Помогите, пожалуйста, разобраться с одной проблемой.
    Требуется написать программу на С для перевода русских символов в верхний регистр.
    Написал функцию.
    char rusToUp(char ch){
    int code;
    int chars = ((int)ch);
    if ( chars>= 160 && chars<=175 ){
    code = ( chars - 32 );
    }
    else if ( chars>=224 && chars<=239 ){
    code = ( chars - 80 );
    }
    return ch;
    }
    Проблема в том , что ansi код русских символов выводиться(у меня) как отрицательное число, из –за этого функция не работает в чем может быть причина ?
    #include <stdio.h>
    int main(void){
    printf(“Э = %d\n”,(int)’Э’) //выводиться -35 в чем причина ?
    printf(“В = %d\n”(int)’в’) //выводит -30
    return 0;
    }
    [snapback]25004" rel="nofollow" target="_blank[/snapback]​
    [/quote]

    Возможно дело в том, что сhar в зависимости от твоего компилятора может являться signed. Отсюда и все проблемы.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей