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

Перевести строку из одной кодировки в другую - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Строки: удалить все пробелы http://www.cyberforum.ru/cpp-beginners/thread547148.html
Всем доброго времени суток. Я учусь на инженера-электрика и вообщем-то засел на задаче по программированию на С++. Буду весьма благодарен тому доброму человеку, который отзовётся и поможет моей проблеме. И так, задача (Тема "Нестандартные функции") Написать и протестировать функцию, которая "сжимает" строку, удаляя из неё все пробелы. Символьная строка вводится с клавиатуры. В программе можно...
C++ Преобразование LPVOID в int Собственно вопрос в коде #include <Windows.h> #include <stdio.h> DWORD WINAPI Func(LPVOID); int main(void) { int a=0; DWORD thID; http://www.cyberforum.ru/cpp-beginners/thread547142.html
Массив строк - список книг определенного автора C++
Подскажите как делать. Если есть дайте ссылку на подобные задачи. Массив строк. Каждая строка содержит: -шифр книги -ФИО автора -год издания -год количество страниц Определить список книг определенного автора, изданных в определенном месте и не ранее указанного года.
Строки - проверка на переполнение и удаление слов C++
подскажите пожалуйста как для вот этой программы со строками сделать проверку на переполнение, и чтобы когда мы удаляли все слова начинающиеся на гласную букву компилятор выдавал оставшиеся слова только чтобы в начале не было пробела stroka() { char str, s; cout<<"Input stroku:\n"; gets (str); char *stroka = new char ; gets(stroka);
C++ Напечатать в алфавитном порядке буквы http://www.cyberforum.ru/cpp-beginners/thread547106.html
Всем привет.Помогитеюу меня есть текст и мне надо напечатать в алфавитном порядке буквы,входящие в заданный текст по одному разу. Я сделал её пузырьковым методом,но как мне убрать дубликаты?
C++ Символы Всем привет.Помогитеюу меня есть текст и мне надо напечатать в алфавитном порядке буквы,входящие в заданный текст по одному разу. Я сделал её пузырьковым методом,но как мне убрать дубликаты? подробнее

Показать сообщение отдельно
i_SamSky
 Аватар для i_SamSky
6 / 6 / 0
Регистрация: 13.04.2012
Сообщений: 57
14.04.2012, 23:07  [ТС]     Перевести строку из одной кодировки в другую
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
string WinToKoi2(const string St)
{
    string Result=St;
     for (int i = 0; i <= St.length(); i++)
 {
    if (  (int(St[i]) == -64) || (int(St[i]) == -63) || (int(St[i]) == -56) || (int(St[i]) == -55)
       || (int(St[i]) == -54) || (int(St[i]) == -53) || (int(St[i]) == -52) || (int(St[i]) == -51)
       || (int(St[i]) == -50) || (int(St[i]) == -49)
       )
        Result[i] = St[i]+33;
 
    if ( int(St[i]) == -62) Result[i]=St[i]+53;
    if ( int(St[i]) == -61) Result[i]=St[i]+36;
    if ( int(St[i]) == -60 || int(St[i]) == -59)
        Result[i]=St[i]+32;
    if ( int(St[i]) == -58) Result[i]=St[i]+48;
    if ( int(St[i]) == -57) Result[i]=St[i]+51;
    if ( int(St[i]) == -48 || int(St[i]) == -47 || int(St[i]) == -46 || int(St[i]) == -45)
        Result[i]=St[i]+34;
    if ( int(St[i]) == -44) Result[i]=St[i]+18;
    if ( int(St[i]) == -43) Result[i]=St[i]+19;
    if ( int(St[i]) == -42) Result[i]=St[i]+13;
    if ( int(St[i]) == -41) Result[i]=St[i]+39;
    if ( int(St[i]) == -40) Result[i]=St[i]+35;
    if ( int(St[i]) == -39) Result[i]=St[i]+36;
    if ( int(St[i]) == -38) Result[i]=St[i]+37;
    if ( int(St[i]) == -37 || int(St[i]) == -36)
        Result[i]=St[i]+29;
    if ( int(St[i]) == -35) Result[i]=St[i]+31;
    if ( int(St[i]) == -34) Result[i]=St[i]+2;
    if ( int(St[i]) == -33) Result[i]=St[i]+18;
 }
    return Result;
}
Знаю, что это садомазохизм, но все же я кое-как написал функцию :D
Буду рад тому, кто найдет во всем этом определенную последовательность и сделает ее покороче.

P.S.: При написании программы выяснилось, что коды символов уезжают в минус почему-то.
P.S.S: Функция пока что переводит только заглавные русские буквы из одной кодировки в другую, до маленьких руки еще не дошли.
 
Текущее время: 07:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru