Pront0
1

Кодировка в C

05.11.2009, 20:13. Показов 4255. Ответов 2
Метки нет (Все метки)

Есть некая функция, написаная мною POS(аргумент), она делает транслит, т.е. например аргумент= Машина, то она преобразует ее => Mashina.
НО!
Всё это хорошо когда аргумент, тобиш переменная, задается в самом коде:
char st[300]="Машина"; // POS(st) переведет ее в Mashina

А нужно, чтобы само слово вводил чел, skanf() ом или gets() ом или еще как..
Здесь и начинается проблема...грубо говоря "внешняя кодировка" отличается от той, где хранится код. Помогите пожалуйста решить сие проблема)setlocale() ?

За одно и вопрос: в какой кодировке в С все "выполняется", а в какой "задается" челом?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.11.2009, 20:13
Ответы с готовыми решениями:

Кодировка
Здравствуйте. Написал программу, всё работает и ошибок нет, но в окне вывода появились всякие...

Кодировка
Мне нужно, чтобы консольная программа закрывалась после ввода определённой строки.Так вот на...

Кодировка
Все привет #include <iostream> #include <conio.h> using namespace std; //Прототипы...

кодировка символов
Всем привет! Столкнулся с такой проблемкой: есть поле unsigned char в него я и ввожу параметр...

2
Эксперт JavaЭксперт С++
8376 / 3598 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
05.11.2009, 20:18 2
Используй CharToOemA и OemToChar. Для справки в коде - это char, с консоли - OEM. Т.е. чтобы ввод с консоли совпал со словом введенным в коде, то или введенное слово преобразовываешь с помощью OemToChar или же слово заданное в коде преобразовываешь с помощью CharToOemA. Обе лежат в windows.h
0
Pront0
05.11.2009, 21:17 3
Блин, не получается((
вобщем вот код
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include<locale.h>
#include <windows.h>
 
 
void POS(char* str){     //функция которая печатает str на русс в английском виде
   char sloj_rus[16]="жцчшщьюяЖЦЧШЩЬЮЯ" ;
    char *sloj_eng[16] = {"zh","ts","ch","sh","shch","'","yu","ya","ZH","TS","CH","SH","SHCH","'","YU","YA"};
    char st_1[72]=" !@#$%^&*()_+-|=':;?<>абвгдеёзийклмнопрстуфхъыэАБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ";
   char st_2[72]=" !@#$%^&*()_+-|=':;?<>abvgdeeziyklmnoprstufh'ieABVGDEEZIYKLMNOPRSTUFH'IEI";
    
           int l,j,i,k=0,pam=strlen(str);
    
 
    for (i=0;i<pam;i++){
        for(j=0;j<72;j++){
            if (str[i]==st_1[j]) {
                printf("%c",st_2[j]);
                             };
                   };
        for(l=0;l<16;l++){
            if (str[i]==sloj_rus[l]) {
                printf("%s",sloj_eng[l]);
                                 };
                   };
        }
    
}
            
    
 
int main() {
 
    char st[300],st_p[300];     
    
 
    gets(st);    
    OemToChar(st,st_p);
    printf("%s\n",st_p);
 
    
    POS(st_p);
    
 
    getchar();
   return 0;
     
}
если за место gets(st) написать, что st уже чему то равно, то все работает...не пойму никак..где ошибка?

Добавлено через 29 минут
Всё разобрался, в 42 строчке надо быол А дописать в фун-ии: OemToCharA) M128K145 sps))
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2009, 21:17
Помогаю со студенческими работами здесь

Кодировка слетела!
У меня беда!( Создал класс с ресурсами, закинул туда иконки, потом увидел в ресурсе свои иконки и...

кодировка Хаффмана
Дорогие программисты. Вот был написан код &quot;кодировка Хаффмана&quot;, и тут мы вводим количество данных и...

Кодировка строки
Добрый вечер. Смотрите, есть переменная, например char str. В эту переменную скачивается какое-то...

Кодировка koi8-r
Всем привет! поискал по всему интернету про кодировку koi8-r нашел кое-что про нее, но чем...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru