![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 12.05.2010
Сообщений: 61
|
![]()
При работе с С++ Builder 6 столкнулся с проблемой: функция rus вторично не совсем корректно работает:
#pragma hdrstop #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> //--------------------------------------------------------------------------- char* rus (char* str) ; // преобразует ANSI-строку в строку ASCII #pragma argsused int main(int argc, char* argv[]) { int i; M1: printf(rus("Для получения кодового слова, закодированного кодом с повторениями нажмите '1'.\n")); printf(rus("Для декодирования вектора нажмите '2'.\n")); printf(rus("Для декодирования вектора, с использованием таблицы смежных классов нажмите '3'.\n")); printf(rus("Для декодирования векторов ошибок нажмите '4'.\n")); printf(rus("Для декодирования векторов ошибок с использованием таблицы смежных классов нажмите '5'.\n")); printf(rus("Для выхода из программы нажмите '6'.\n")); printf(rus("Введите команду: ")); scanf("%d", &i); switch(i) { case 6: return 1; default: { printf(rus("Введена некорректная команда.\n")); goto M1; } } } char* rus(char* str) { unsigned char *p=str; while (*p) { if (*p>=192) // здесь русская буква if ((*p)<=239) // А, Б, ... Я, а, б, ... п (*p)-=64; else // p ... я (*p)-=16; p++; } return str; } |
![]() |
![]() |
![]() |
#2 | ||
Заблокирован
Регистрация: 05.05.2010
Сообщений: 40
|
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 12.05.2010
Сообщений: 61
|
![]()
Спасибо всем, кто попытался помочь!
char* rus(char* str) { unsigned char *p=NULL; char *str2=""; strcpy(str2,str); p=str2; /* при объявлении символов как char русские буквы кодируются отрицательными числами */ while (*p) { if (*p>=192) // здесь русская буква if ((*p)<=239) // А, Б, ... Я, а, б, ... п (*p)=(*p)-64; else // p ... я (*p)=(*p)-16; p++; } return str2; } |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не работает "русификатор" | ТриСемёрки | C++ Builder | 3 | 12.05.2010 12:56 |
"ОКРВВЕРХ", "ОКР", "ЕСЛИ". Как бы их связать. | Каравай | Microsoft Office Excel | 13 | 17.02.2010 09:53 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |
Почему не работает Case txt Like "текст1", "текст2" | Oooleg | Microsoft Office Excel | 2 | 15.07.2009 10:08 |