Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.62
feda
Сообщений: n/a
#1

Русский язык в Visul C++. Сортировка по алфавиту - C++

11.11.2008, 21:07. Просмотров 3499. Ответов 1
Метки нет (Все метки)

Народ, помогите пожалуйста! Написал функцию сравнения по алфавиту. С английскими словами все работает, но с русскими - нет. смотрел в отладчике, там вместо введенных мной слов высвечивается совсем другие символы непонятные. Подскажите, что делать.

Код
int cmpr(char *s1, char* s2)
{
    char et[]="0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÀàÁáÂâÃãÄäÅ娸ÆæÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖö×÷ØøÙùÜüÛûÚúÝýÞþßÿ" ;
    int l1=strlen(s1), l2=strlen(s2), let=strlen(et) ;
    if(l1>=l2)
    {
        for(int i=0; i<l2; i++)
        {
            int i1, i2 ;
            for(int j=0;j<let-1; j++)
            {
                if(s1[i]==et[j]) 
                {
                    cout<<s1[i]<<endl ;
                    i1=j ;
                    break ;
                }
            }
            for(j=0;j<let-1; j++)
            {
                if(s2[i]==et[j]) 
                {
                    i2=j ;
                    break ;
                }
            }
            if(i1>i2) return 1 ;
            else if(i2>i1) return -1 ;
        }
    }
    else
    {
        for(int i=0; i<l1; i++)
        {
            int i1, i2 ;
            for(int j=0;j<let-1; j++)
            {
                if(s1[i]==et[j]) 
                {
                    i1=j ;
                    break ;
                }
            }
            for(j=0;j<let-1; j++)
            {
                if(s2[i]==et[j]) 
                {
                    i2=j ;
                    break ;
                }
            }
            if(i1>i2) return 1 ;
            else if(i2>i1) return -1 ;
        }
        
    }
    if(l1==l2) return 0 ;
    else if(l1<l2) return -1 ;
    else return 0 ;
}
там в строке et[] после танглийских букв идет русский алфавит
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2008, 21:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Русский язык в Visul C++. Сортировка по алфавиту (C++):

Русский язык в C++ - C++
Как в C++ консоли подключить русский язык желательной setLoceta(Rus) такой функцией, у меня не получилось её использваоть

Русский Язык!!! - C++
Как в переменную char A; занести Ф только чтоб после отоброжалось не каракули а Ф! и библиотеку!

русский язык - C++
Использую компилятор Dev C++ , при выводе результата если написать слово про русски то оно выводиться непонятными иероглифами, на латинице...

Русский язык - C++
Уже задолбался с попыткой заставить выводить считанные русские строки. Имеем. По идее там должна быть функция CharToOem но она коверкает....

Русский язык - C++
В общем у меня такая проблема , имеется код , в котором нужно что бы выводились русские буквы (имеется ввиду что без setlocale русские...

Русский язык в Си - C++
Здравствуйте, Столкнулся с банальной проблемой При вводе-выводе в текстовый файл и в консоль при обращении непосредственно из main()...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
11.11.2008, 21:40 #2
bool CharToOem(const char*str Src,char*str Dest);
strSrc–строка которую необходимо транслировать.
strDst–строка в каторую запишеться отраслируемый текс.
Пример:

#include <windows.h>

void rus (char*src)
{
char dst[256];
CharToOem(src,dst);
cout<<dst;
}

Настроикапроэкта (Alt+F7)=>Configuration Properties=>Character set=>Use Multi-Byte…
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2008, 21:40
Привет! Вот еще темы с ответами:

Русский язык - C++
char szNonColorEmbeddedMsg; int iNonColorEmbeddedMsgLen = 0; for (size_t pos = 0; pos &lt; strlen(szMsg) &amp;&amp; szMsg != '\0'; pos++) ...

русский язык - C++
Помогите пишу задачу,как сделать чтоб всё выводило на русском языке? какая функция? или фрагмент кода? cout&lt;&lt;&quot;Dobavlenie informacii...

Русский язык - C++
Нужно написать программу, которая исправляла бы ошибки после Ж,Ч,Ш,Щ(Ы,Я,Ю на И,А,У). Учитывая исключения: Жюри, Брошюра, парашют. ...

Русский язык в консоли - C++
Скажу сразу, что закрепленную тему я прочитал, но не очень понял, как это реализовать. Вот код, текст выводится неизвестными символами....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru