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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2011, 02:28   #1
dollemika
Пользователь
 
Регистрация: 29.04.2009
Сообщений: 29
По умолчанию Вывод русской строки типа char*

char* longestWord(const char* text)
{
int i,I,len=0;
string helpstr="абвгдеёжзийклмнопрстуфхцчь ъшщыэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЧЦШЩЪ ЬЫЭЮЯ";
i=-1;
for (int k=0; k<strlen(text); k++)
{
if (helpstr.find(text[k])!=-1)
{if (i==-1) i=k;}
else
if (i!=-1) {if (len<(k-i)) {len=k-i; I=i; i=-1;}}
}

cout.write(text,6);
cout<<'\n';

char *x;
x=new char[len];
for (int i=I; i<I; i++)
x[i-I]=text[i];

cout<<'\n';
cout.write(x,len);
return x;
}


Подскажите пожалуйста, почему в данной функции в первом случае строка русских символов выводиться как надо, а после присваивания ее части другой строке этого же типа, вместо того, что нужно, выводиться абракадабра?
dollemika вне форума Ответить с цитированием
Старый 24.11.2011, 10:56   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

dollemika

int i,I

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

что до мусора, то проверь что делает этот цикл:

for (int i=I; i<I; i++)
x[i-I]=text[i];
Rififi вне форума Ответить с цитированием
Старый 26.11.2011, 12:33   #3
dollemika
Пользователь
 
Регистрация: 29.04.2009
Сообщений: 29
По умолчанию

что до мусора, то проверь что делает этот цикл:
for (int i=I; i<I; i++)
x[i-I]=text[i];

спасибо, была не внимательна. У меня еще один вопрос. Подскажите пожалуйста, почему, даже при использовании setlocale(LC_CTYPE, "Russian"), с консоли не считываются русские символы, и как это исправить?
dollemika вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как убрать в ячеиках типа char(255) после моеи строки пробелы ArtGrek БД в Delphi 4 02.05.2011 09:46
C# - Вывод строки System.Char[] вместо нужного результата Lastsummer Помощь студентам 3 02.02.2011 22:55
Чтение русской строки RIO Общие вопросы C/C++ 5 10.06.2010 18:24
Вывод русской wstring Alessa Общие вопросы C/C++ 11 23.01.2010 12:30
Запись числа типа инт в ячейку двумерного массива типа char AxenicX Помощь студентам 1 25.09.2009 00:35