Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы
Старый 31.05.2008, 15:26   #1
Sota
Let's keep talking
Форумчанин Подтвердите свой е-майл
 
Аватар для Sota
 
Регистрация: 02.07.2007
Сообщений: 217
Вопрос Работа с русскими символами...

Народ помогите. Задача состоит в том, что нужно исправить ошибки в введенных словах по некоторому правилу.(жи-ши пиши с буквой "и" и т.п.).
Вот код написанной программы:
Код:
# include <stdio.h>
# include <vcl.h>
# include <conio.h>
# include <iostream.h>
# include <string.h>
char* Rus(const char* text);
 void main ()
{
	char str[255];
	cout<<Rus("Введите строку>> ");
	gets(str);
	for (int i=0; i<=strlen(str);i++)
	{
		if ((str[i]=='ж')&&(str[i+1]=='ы'))str[i+1]='и';
		if ((str[i]=='ш')&&(str[i+1]=='ы'))str[i+1]='и';
		if ((str[i]=='ч')&&(str[i+1]=='я'))str[i+1]='а';
		if ((str[i]=='щ')&&(str[i+1]=='я'))str[i+1]='а';
		if ((str[i]=='ч')&&(str[i+1]=='ю'))str[i+1]='у';
		if ((str[i]=='щ')&&(str[i+1]=='ю'))str[i+1]='у';
	}
	cout<<str;
	getch();
}
	char bufRus[256];
char* Rus(const char* text)
{
	CharToOem(text, bufRus);
	return bufRus;
}
Но программа не понимает русские буквы. Прошу, помогите. как заставить её понять их? Всем заранее спасибо.
Лучше С++, чем ++С...
Sota вне форума Ответить с цитированием
Старый 31.05.2008, 16:53   #2
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Ну я, как всегда, могу предложить только мой любимый
#include <windows.h>
с его неизменными
Код:
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Не пойму, почему все игнорят этот метод?

А может в твоей программе нужно вводимую строку пропускать через функцию Rus() ? К сожалению, проверить не могу, у меня студия вообще ругается на vcl.h
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать

Последний раз редактировалось ACE Valery; 31.05.2008 в 16:56.
ACE Valery вне форума Ответить с цитированием
Старый 31.05.2008, 17:25   #3
Sota
Let's keep talking
Форумчанин Подтвердите свой е-майл
 
Аватар для Sota
 
Регистрация: 02.07.2007
Сообщений: 217
По умолчанию

А скажи пожалуйста, куда это надо в мою прогу вставить, чтоб она корректно заработала?
Лучше С++, чем ++С...
Sota вне форума Ответить с цитированием
Старый 31.05.2008, 18:04   #4
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

Если ты про мой вариант, то

Код:
#include <windows.h>

using namespace std;

void main ()
{
	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);
          //твой код
}
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 31.05.2008, 18:42   #5
Sota
Let's keep talking
Форумчанин Подтвердите свой е-майл
 
Аватар для Sota
 
Регистрация: 02.07.2007
Сообщений: 217
По умолчанию

ага. спасибо. почти так сделал. Найогромнейшее спасибо!!!
Лучше С++, чем ++С...
Sota вне форума Ответить с цитированием
Старый 31.05.2008, 18:44   #6
merax
Форумчанин
 
Регистрация: 27.12.2006
Сообщений: 955
По умолчанию

Вот вы Sota вроде давно уже на форуме. Сообщений у вас нормально, правила вроде соблюдаете, к другим уважительно относитесь... НО !!!
Почему не пользуйтесь ПОИСКОМ. Быть может ответ на Ваш вопрос уже есть тут ?
merax вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удалить лишние пробелы со строки так чтобы между символами осталось по одному пробелу delphi MASIK Общие вопросы Delphi 7 22.12.2010 18:23
Формирование Excel-документа через OLE-сервер с Unicode-символами sergushkin Microsoft Office Excel 2 13.04.2008 23:04
Задачка на работу с символами и строками Go6a Помощь студентам 10 30.03.2008 16:31
удалить лишние пробелы со строки так чтобы между символами осталось по одному пробелу c++ DimaG Общие вопросы C/C++ 1 01.11.2007 21:50