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

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

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

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 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