Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не читаются русские символы, частотный анализ 
:(
    Опции темы
ДобренькийПапаша
Дата 1.12.2008, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



В общем написал кусок кода, который считает количество вхождений каждой буквы в текст. Дан зашифрованный текст, частотным анализом надо расшифровать его. Делаю английские буквы всё норм, а с русскими не получается...Как исправить данную ситуацию?

Код

#include <iostream.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
void main()
{ 
    char s[270]="БЪОБВКТШ БЪЧОБ ХМЮ ЖЛЕДВКЗСЛЮ ДЗПМЛГСТАЛ АЪБВХЗАЛ РДВКЪДЧЗ АЪБВХВК ВХSВЗМЕЗКЛБСТШ АЪБВХ О ЕЛЧОЛДВКЗССТА ОАЪЙЪСЛЪА ВХСВЗМЕЗКЛБСТШ О ПЗХЗКЗЪАТА ОАЪЙЪСЛЪА РЪДЪОБЗСВКЧЗ ОЛАКВМВК АСВУВЗМЕЗКЛБСТШ АЪБВХ О ЕЛЧОЛДВКЗССТА ЧМЯГВА АСВУВЗМЕЗКЛБСТШ АЪБВХ О ЧМЯГВА ЕЛЧОЛДВКЗССВШ ХМЛСТ";
    char g[32];
    
    for(int p=0; p<32; p++)
    {
        //cout<<(char)<<" "<<i<<endl;
        g[p]=(char)(p+128);
        //cout<<alpha[i]<<endl;
    }
    g[31]='S';
    int array[32];
    for(p=0; p<32; p++)
    {
        array[p]=0;
    }
    int k,i,sym,z,j;

   // puts ("Vvedi stroku: ");
    //gets(s);
    
    for(i=0; i<270; i++)
    {
        for(j=0; j<32; j++)
        {
            if(s[i]==g[j]) array[j]++;
        }
        j=0;
    }

      cout<<"\n";
      z=0;

    for(i=0; i<32; i++)
    {
        cout<<g[i]<<" "<<array[i]<<endl;
    }

}



--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
SoulSeeker
Дата 1.12.2008, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 21.7.2008

Репутация: нет
Всего: 2



Код

#include <windows.h>

void main()
{
     char buf[270]="БЪОБВКТШ БЪЧОБ ХМЮ ЖЛЕДВКЗСЛЮ ДЗПМЛГСТАЛ АЪБВХЗАЛ РДВКЪДЧЗ АЪБВХВК ВХSВЗМЕЗКЛБСТШ АЪБВХ О            ЕЛЧОЛДВКЗССТА ОАЪЙЪСЛЪА ВХСВЗМЕЗКЛБСТШ О ПЗХЗКЗЪАТА ОАЪЙЪСЛЪА РЪДЪОБЗСВКЧЗ ОЛАКВМВК АСВУВЗМЕЗКЛБСТШ АЪБВХ О ЕЛЧОЛДВКЗССТА ЧМЯГВА АСВУВЗМЕЗКЛБСТШ АЪБВХ О ЧМЯГВА ЕЛЧОЛДВКЗССВШ ХМЛСТ";
     char g[32];
     char s[270];

     CharToOem(buf, s); ........

PM MAIL WWW   Вверх
SoulSeeker
Дата 1.12.2008, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 21.7.2008

Репутация: нет
Всего: 2



Тут еще в цикле ошибка: 
Код

int array[32]; 
for(/*вот тут*/int p=0; p<32; p++)
    {
        array[p]=0;
    }

и это можно сделать короче  smile :
Код

int array[32]={0};


Это сообщение отредактировал(а) SoulSeeker - 1.12.2008, 19:03
PM MAIL WWW   Вверх
vinter
Дата 1.12.2008, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



SoulSeeker, ноль в скобках необязателен


--------------------
Мой блог
PM MAIL WWW   Вверх
ДобренькийПапаша
Дата 1.12.2008, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 14.1.2006
Где: г.Москва

Репутация: нет
Всего: 7



спасибо. забыл про CharToOem давно это было))))


--------------------
Меня зовут Себастьян Парейра, торговец чёрным деревом.
PM MAIL   Вверх
jonie
Дата 3.12.2008, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



а лучше б изучили locale ... да и вообще про CharToOem можно найти в поиске по форуму ) тут же и про locale найдете )


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.