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

Перекодировать текст с UTF-8 в ASCII - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сгенеровать и вывести массив из 10 чисел от -10 до 10 http://www.cyberforum.ru/cpp-beginners/thread1304422.html
C++ - написать программу, которая генерирует и выводит массив из 10 чисел от -10 до 10, меняет местами первый и последний элементы и выводит новый массив.
C++ Дерево бинарного поиска: найти наибольшее из значений листьев помогите пожалуйста, не могу найти минимум. В файле input.txt хранится последовательность целых чисел. Построить дерево бинарного поиска и найти для него наибольшее из значений листьев. //программа находит все листья #include <fstream> using namespace std; ifstream in("input.txt"); ofstream out("output.txt"); struct tree { int inf; tree *left, *right; http://www.cyberforum.ru/cpp-beginners/thread1304418.html
C++ Найти в матрице первый столбец, все элементы которого отрицательны
Есть затруднения с заданием 1. Необходимо создать программу, которая выполняет действия из задания 1 и задания 2. По запросу с клавиатуры, программа выполняет следующие действия: 1) Ввести новый массив (динамический); 2) Задание 1; 3) Вывод массива; 4) Задание 2; 5) Выход. Найти в матрице первый столбец, все элементы которого отрицательны, и среднее арифметическое этих элементов....
C++ Разбить текст на абзацы
Здравствуйте, уважаемые программисты. Такой вопрос. Есть задание и для него уже написана (ниже) программа (спасибо одному хорошему человеку с этого форума). "Задан текст. Предложения текста идут подряд. Преобразовать текст так, чтобы каждое предложение составляло отдельный абзац, начинающийся с красной строки в три пробела." Но вместо того, чтобы давать компилятору ввести свой текст, нужно дать...
C++ Поиск максимального независимого множества вершин в графе http://www.cyberforum.ru/cpp-beginners/thread1304402.html
Всем доброго времени суток, Имеем матрицу смежности простого неориентированного графа Задача найти максимальное независимое множество вершин и перечислить их. Имеем следующее положение: нахождение максимальных независимых множеств в графе эквивалентно нахождению нулевых подматриц его матрицы смежности, стоящих на главной диагонали. Следовательно, задача сводится к поиску максимальной...
C++ Обратный порядок С++ Добрый вечер. Есть прога, но не могу разобраться в ней, можете поставить комментарии? И как реализовать этот же код программы, но что бы строку (предложение) вводить с клавиатуры. Спасибо. #include "stdafx.h" #include <iostream> #include <cstring> #include <cstdlib> using namespace std; void main() { подробнее

Показать сообщение отдельно
Vasilijs
0 / 0 / 1
Регистрация: 20.10.2014
Сообщений: 17
19.12.2014, 15:57  [ТС]     Перекодировать текст с UTF-8 в ASCII
на данный момент я остановился на этом:
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
82
83
84
85
86
87
88
89
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
struct Letter {int win; int utf;};
Letter w1251_utf[]={{0xC0, 0x0410},{0xC1, 0x0411},{0xC2, 0x0412},{0xC3, 0x0413},{0xC4, 0x0414},{0xC5, 0x0415},{0xC6, 0x0416},{0xC7, 0x0417},{0xC8, 0x0418},{0xC9, 0x0419},{0xCA, 0x041A},{0xCB, 0x041B},{0xCC, 0x041C},{0xCD, 0x041D},{0xCE, 0x041E},{0xCF, 0x041F},
                    {0xD0, 0x0420},{0xD1, 0x0421},{0xD2, 0x0422},{0xD3, 0x0423},{0xD4, 0x0424},{0xD5, 0x0425},{0xD6, 0x0426},{0xD7, 0x0427},{0xD8, 0x0428},{0xD9, 0x0429},{0xDA, 0x042A},{0xDB, 0x042B},{0xDC, 0x042C},{0xDD, 0x042D},{0xDE, 0x042E},{0xDF, 0x042F},
                    {0xE0, 0x0430},{0xE1, 0x0431},{0xE2, 0x0432},{0xE3, 0x0433},{0xE4, 0x0434},{0xE5, 0x0435},{0xE6, 0x0436},{0xE7, 0x0437},{0xE8, 0x0438},{0xE9, 0x0439},{0xEA, 0x043A},{0xEB, 0x043B},{0xEC, 0x043C},{0xED, 0x043D},{0xEE, 0x043E},{0xEF, 0x043F},
                    {0xF0, 0x0440},{0xF1, 0x0441},{0xF2, 0x0442},{0xF3, 0x0443},{0xF4, 0x0444},{0xF5, 0x0445},{0xF6, 0x0446},{0xF7, 0x0447},{0xF8, 0x0448},{0xF9, 0x0449},{0xFA, 0x044A},{0xFB, 0x044B},{0xFC, 0x044C},{0xFD, 0x044D},{0xFE, 0x044E},{0xFF, 0x044F}};
 
Letter w1257_utf[]={{0xC0, 0x0104},{0xC1, 0x012E},{0xC2, 0x0100},{0xC3, 0x0106},{0xC4, 0x00C4},{0xC5, 0x00C5},{0xC6, 0x0118},{0xC7, 0x0112},{0xC8, 0x010C},{0xC9, 0x00C9},{0xCA, 0x0179},{0xCB, 0x0116},{0xCC, 0x0122},{0xCD, 0x0136},{0xCE, 0x012A},{0xCF, 0x013B},
                    {0xD0, 0x0160},{0xD1, 0x0143},{0xD2, 0x0145},{0xD3, 0x00D3},{0xD4, 0x014C},{0xD5, 0x00D5},{0xD6, 0x00D6},{0xD7, 0x00D7},{0xD8, 0x0172},{0xD9, 0x0141},{0xDA, 0x015A},{0xDB, 0x016A},{0xDC, 0x00DC},{0xDD, 0x017B},{0xDE, 0x017D},{0xDF, 0x00DF},
                    {0xE0, 0x0105},{0xE1, 0x012F},{0xE2, 0x0101},{0xE3, 0x0107},{0xE4, 0x00E4},{0xE5, 0x00E5},{0xE6, 0x0119},{0xE7, 0x0113},{0xE8, 0x010D},{0xE9, 0x00E9},{0xEA, 0x017A},{0xEB, 0x0117},{0xEC, 0x0123},{0xED, 0x0137},{0xEE, 0x012B},{0xEF, 0x013C},
                    {0xF0, 0x0161},{0xF1, 0x0144},{0xF2, 0x0146},{0xF3, 0x00F3},{0xF4, 0x014D},{0xF5, 0x00F5},{0xF6, 0x00F6},{0xF7, 0x00F7},{0xF8, 0x0173},{0xF9, 0x0142},{0xFA, 0x015B},{0xFB, 0x016B},{0xFC, 0x0FC},{0xFD, 0x017E},{0xFE, 0x017E},{0xFF, 0x02D9}};
 
int utf8toutf16(unsigned int a, unsigned int b, int &r)  //utf8 -> utf16
{
    unsigned int c1=a;
    unsigned int c2=b;
    r=c2&0x3F | c1 << 6 | c1 & 0xFC << 6;
    return r;
}
 
void utf_win1251(char* FileName, char* FileNameOK)     //RUSSIAN    utf16->ASCII
{
    char str[100];
    int cod;
    int Num[100];   //
    FILE* file=fopen(FileName,"rt");
    if (!file) printf("Reading error");
    while (!feof(file))
    {
        fgets(str,100,file);
    }
    for (int i=0;i<strlen(str);i++) Num[i]=str[i];
    //--------------------
    for (int i=0;i<strlen(str);i++)
    {
        //cod=(int) ("%x",str[i]);
        cod=utf8toutf16();
        for (int j=0; j<64; /*j++*/)
        {
            if (cod==w1251_utf[j].utf) {printf("%s ",w1251_utf[j].win);j++;}
            else {printf("?"); j++;}
        }
    }
}
 
 
void utf_win1257(char* FileName, char* FileNameOK)    //LATVIAN
{
    char str[100];
    int Num[100];   // tablica s unicodam
    FILE* file=fopen(FileName,"rt");
    if (!file) printf("Reading error");
    while (!feof(file))
    {
        fgets(str,100,file);
    }
    for (int i=0;i<strlen(str);i++) Num[i]=str[i];
 
}
 
int main(int argc, char* argv[])
{
    /*char FileName[100];
    int res=0;
    char FileNameOK[100];
    if (argc==2) strcpy(FileName, argv[1]);
    else
    {
        printf("> Text file name:  ");
        scanf("%s", &FileName);
        printf("> Saved file name: ");
        scanf("%s", &FileNameOK);
        printf("> Choose code table:\n 1:Win1251 [RUS]\n 2:Win1257 [LAT]\n ");
        scanf("%i",&res);
    } */
    //utf_win1251(FileName,FileNameOK);
 
    //printf("REZ %x ",utf8toutf16(0x00,0x31,0));
 
    //if (res==1) utf_win1251(FileName, FileNameOK);
    //if (res==2) utf_win1257(FileName, FileNameOK);
    //if (res!=1 || res!=2) printf("Please, choose only 1 or 2!\n");
   // workfile(FileName, FileNameOK);
    system("pause");
    return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru