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

Перевод символа в Юникод - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ что то не так с компилятором? http://www.cyberforum.ru/cpp-beginners/thread325376.html
есть класс, который переписан с книги Лафоре Р. #include <cstdlib> #include <iostream> #include <conio.h> class time { private: int hrs, mins, secs;
C++ CreateFileA как записать путь.(нужно именно путь, а то так создает в папке приложения) HANDLE hfile1 = CreateFile("E:\res.txt", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, 0, NULL); по getlasterror() получаю 123 = Синтаксическая ошибка в имени файла, имени папки или метке тома. ответ найден (глупо!) http://www.cyberforum.ru/cpp-beginners/thread325373.html
C++ Функции и модули двумерной матрицы
Доброго всем дня. Дорогие пользователи форумом, пожалуйста помогите,завтра сдавать зачет по С++ а у меня 2 лабы еще не готовы. Вот задание: В каждой строке найти максимум среди четных элементов, а в каждом столбце минимум нечетных элементов. Необходимо использовать функции в 1-й, и модули во 2-й лабороторке. Ввод/вывод осуществляется в одном модуле/функции, вычисление в другом модуле/функции.
Вычисление суммы и разности денежных величин C++
Создаю программу для вычисления суммы и разности денежных велечин. Вроде делаю все правильно, но заместо того чтобы программа вышла из условного оператора switch и перешла к моей конструкции cout<<"Всего "<<a<<" фунтов "<<b<<" шиллингов "<<c<<" пенсо"<<endl; cout<<"Посчитать еще раз ? y/n --> "; ... она у меня заново выполняет цикл. Я подозреваю, что проблема кроется в break-е (по - моему это он...
C++ Решить для экзамена http://www.cyberforum.ru/cpp-beginners/thread325350.html
Здравствуйте товарищи программисты. Мне очень нужна помощь с задачами. Экзамен завтра, а я в программировании не силен (Точнее вообще не шарю). Дело в том, что дан конкретный список задач, я пытался что то сделать сам но не получилось. У меня к вам просьба. Помогите пожалуйста с задачами. Их 28 но они все простые начального уровня. Вот список с задачами: Пожалуйста напишите готовые решения...
C++ Упражнения по C++ Люди добрые весь гугл обыскал но не нашел нормального задачника по с++ (имеется в виду задачи идут по уровню сложности от меьшего к большему), конечно я нашел пару книг но там тема int а в решение и string напихали да еще и код укорачивают не пишут полностью, как будто у новичка который начал бигин должен решить задачу на string классы. подробнее

Показать сообщение отдельно
Danvern
40 / 39 / 3
Регистрация: 22.06.2010
Сообщений: 415
Записей в блоге: 1
05.07.2011, 20:17  [ТС]     Перевод символа в Юникод
это все вики педии написано

Цитата Сообщение от schdub Посмотреть сообщение
почему 6? как связаны эти куски? это одно понятие? что если необходимо будет изменить это значение.
потому что каждая буква например "п" в url кодировке "%D0%BF" собственно в массиве должно быть в 6 раз больше места чем в начальном.
Цитата Сообщение от schdub Посмотреть сообщение
что это за значения ?
вот из википедии
0x00000080 — 0x000007FF (128 - 2047) 110xxxxx 10xxxxxx кириллица, расширенная латиница, арабский, армянский, греческий, еврейский и коптский алфавит; сирийское письмо, тана, нко; МФА; некоторые знаки препинания
Добавлено через 24 минуты
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <iostream>
#include <stdio.h>
using namespace std;
 
int main()
{
    setlocale(0,"");
    system("cls");
 
    char s[] = "hello Word";
    char illegalChar[] = "0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz";
    bool whatIllegal = false;
    char temp[6];
    int hos , los ,lenStr = strlen(s);
    long int sym;
    char * result = new char[lenStr * 6 + 1];
    wchar_t * sw = new wchar_t[lenStr + 1];
 
    memset(result,0,lenStr * 6  + 1);
    memset(sw,0,lenStr + 1);
 
    mbstowcs(sw,s,lenStr);
 
    for(int i = 0;i < (int)strlen(s);i++)
    {
        
        if((int)sw[i] <= 127)
        {
            memset(temp,0,sizeof(temp));
            for(int k = 0;k < sizeof(illegalChar);k++)
            {
                if(illegalChar[k] == sw[i])
                {
                    whatIllegal = true;
                    break;
                }
            }
 
            lenStr = strlen(result);
 
            if(!whatIllegal)
            {
                sprintf(temp,"%X",(int)sw[i]);
                result[lenStr] = '%';
                result[lenStr + 1] = temp[0];
                result[lenStr + 2] = temp[1];
            }
            else
            {
                result[lenStr] = sw[i];
                whatIllegal = false;
            }
        }
 
        if((int)sw[i] >= 128 && (int)sw[i] <= 2047)
        {
            hos = sw[i] >> 6;
            los = (hos << 6) ^ sw[i];
            sym = ( ( ( ( ( 6 << 5 ) ^ hos ) << 2 ) ^ 2 ) << 6 ) ^ los;
 
            memset(temp,0,sizeof(temp));
 
            sprintf(temp,"%X",sym);
 
            lenStr = strlen(result);
            result[lenStr] = '%';
            result[lenStr + 1] = temp[0];
            result[lenStr + 2] = temp[1];
            result[lenStr + 3] = '%';
            result[lenStr + 4] = temp[2];
            result[lenStr + 5] = temp[3];
        }
    }
    cout << result << endl;
 
    delete[] sw;
    delete[] result;
 
    getchar();
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru