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

Транслитерировать! код есть, нужно найти ошибку - C++

Восстановить пароль Регистрация
 
prog9
0 / 0 / 0
Регистрация: 03.12.2013
Сообщений: 8
23.12.2013, 12:14     Транслитерировать! код есть, нужно найти ошибку #1
Транслитерировать текстовый файл в латиницу.
Помогите найти ошибку, программа не все буквы транслитерирует.

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
90
91
92
#include <iostream>
#include <math.h>
#include <locale.h>
#include <string.h>
using namespace std;
int main()
{ 
    char str1[100], a;
    int n,i; 
    setlocale( LC_ALL, "russian" ); 
    cout<<"Введите текст: "<<endl;
    gets(str1);
    n=strlen(str1);
    for (i=0; i<n;i++)
    {
        a=str1[i];
        switch (a) 
        {
            case -96: cout<<"a"; break;
            case -95: cout<<"b"; break;
            case -94: cout<<"v"; break;
            case -93: cout<<"g"; break;
            case -92: cout<<"d"; break;
            case -91: cout<<"e"; break;
            //case -90: cout<<"ye"; break;
            case -89: cout<<"zh"; break;
            case -88: cout<<"z"; break;
            case -87: cout<<"i"; break;
            case -86: cout<<"y"; break;
            case -85: cout<<"k"; break;
            case -84: cout<<"l"; break;
            case -83: cout<<"m"; break;
            case -82: cout<<"n"; break;
            case -81: cout<<"o"; break;
            case -80: cout<<"p"; break;
            case -79: cout<<"r"; break;
            case -78: cout<<"s"; break;
            case -77: cout<<"t"; break;
            case -76: cout<<"u"; break;
            case -75: cout<<"f"; break;
            case -74: cout<<"ch"; break;
            case -73: cout<<"c"; break;
            case -72: cout<<"ch"; break;
            case -71: cout<<"sh"; break;
            case -70: cout<<"sh'"; break;
            case -69: cout<<"/'"; break;
            case -68: cout<<"y"; break;
            case -67: cout<<"\'"; break;
            case -66: cout<<"ae"; break;
            case -65: cout<<"yu"; break;
            case -64: cout<<"ya"; break;
            case -63: cout<<"A"; break;
            /*case 'Б': cout<<"B"; break;
            case 'В': cout<<"V"; break;
            case 'Г': cout<<"G"; break;
            case 'Д': cout<<"D"; break;
            case 'Е': cout<<"E"; break;
            case 'Ё': cout<<"Ye"; break;
            case 'Ж': cout<<"Zh"; break;
            case 'З': cout<<"Z"; break;
            case 'И': cout<<"I"; break;
            case 'Й': cout<<"Y"; break;
            case 'К': cout<<"K"; break;
            case 'Л': cout<<"L"; break;
            case 'М': cout<<"M"; break;
            case 'Н': cout<<"N"; break;
            case 'О': cout<<"O"; break;
            case 'П': cout<<"P"; break;
            case 'Р': cout<<"R"; break;
            case 'С': cout<<"S"; break;
            case 'Т': cout<<"T"; break;
            case 'У': cout<<"U"; break;
            case 'Ф': cout<<"F"; break;
            case 'Х': cout<<"Ch"; break;
            case 'Ц': cout<<"C"; break;
            case 'Ч': cout<<"Ch"; break;
            case 'Ш': cout<<"Sh"; break;
            case 'Щ': cout<<"Sh'"; break;
            case 'Ъ': cout<<"/'"; break;
            case 'Ы': cout<<"Y"; break;
            case 'Ь': cout<<"\'"; break;
            case 'Э': cout<<"Ae"; break;
            case 'Ю': cout<<"Yu"; break;
            case 'Я': cout<<"Ya"; break;*/
 
            default : cout<<" "; 
        }
 
    }
    cout<<a;
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2013, 12:14     Транслитерировать! код есть, нужно найти ошибку
Посмотрите здесь:

Есть код нужно исправить ошибки C++
есть код и есть ошибка нужно найти дырку C++
нужно найти ошибку. C++
C++ BOrland c for dos Исправить ошибку! код есть!
Найти ошибку кода(если есть) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
23.12.2013, 15:43     Транслитерировать! код есть, нужно найти ошибку #2
Заведи массив соответствий.
prog9
0 / 0 / 0
Регистрация: 03.12.2013
Сообщений: 8
23.12.2013, 16:57  [ТС]     Транслитерировать! код есть, нужно найти ошибку #3
то есть?
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
23.12.2013, 17:15     Транслитерировать! код есть, нужно найти ошибку #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <cstdlib>
#include <map>
    
int main(int argc, char *argv[])
{
    std::map<char, std::string> m = { 
        {'а', "a"}, 
        {'б', "b"},
        {'в', "v"},
        {'г', "g"}
    };
    std::string translate = "бвгбав";
    for (std::string::iterator it = translate.begin(); it != translate.end(); ++it)
        std::cout << m[*it];
 
    return EXIT_SUCCESS;
}
Добавлено через 2 минуты
Лучше даже с проверкой есть ли элемент в массиве
C++
1
2
3
    for (std::string::iterator it = translate.begin(); it != translate.end(); ++it)
        if (m.count(*it))
            std::cout << m[*it];
gazlan
2863 / 1811 / 272
Регистрация: 27.08.2010
Сообщений: 4,907
Записей в блоге: 1
23.12.2013, 17:23     Транслитерировать! код есть, нужно найти ошибку #5
Re: Транслитерация c++
Yandex
Объявления
23.12.2013, 17:23     Транслитерировать! код есть, нужно найти ошибку
Ответ Создать тему
Опции темы

Текущее время: 17:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru