Форум программистов, компьютерный форум CyberForum.ru

строки - C++

Восстановить пароль Регистрация
 
murod
 Аватар для murod
-2 / 7 / 2
Регистрация: 04.11.2010
Сообщений: 163
21.06.2011, 14:02     строки #1
Юлий Цезарь использовал свой способ шифрования текста. Каждая буква заменялась на следующую по алфавиту через K позиций по кругу. Необходимо по заданной шифровке определить исходный текст.



Формат входного файла

В первой строке дана шифровка, состоящая из заглавных латинских букв. Во второй строке число K (1 ≤ K ≤ 10).



Формат выходного файла

Требуется вывести результат расшифровки.



Примеры

Ввод Вывод

XPSE WORD
1

ZABC WXYZ
3
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2011, 14:02     строки
Посмотрите здесь:

C++ Вывести строки файла, после строки добавляя, сколько раз в ней встретилось слово
Даны две строки. Получить строку, в которой чередуются слова первой и второй строки C++
Строки. Вывести на печать то слово этой строки, которое по алфавиту предшествует всем другим C++
C++ Вывести на экран все строки данного массива одну за другой в виде целой строки
C++ Если строки одинаковы, объединить две строки, исключив из второй первые десять символов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Daemon025
 Аватар для Daemon025
380 / 329 / 67
Регистрация: 06.12.2010
Сообщений: 900
21.06.2011, 15:25     строки #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
#include <ctype.h>
 
using namespace std;
 
void encode(char*,int);
void decode(char*,int);
int   indexOf(char);
 
 
int main()
{
    char s[] = "XPSE WORD";
   
    cout << s << endl;
    encode(s,4);
    cout << s << endl;
    decode(s,4);
    cout << s << endl;
       
    cin.get();
    return 0;
}
 
void decode(char* s,int key)
{
    char* alphabet = new char[26];
   
    for (int i=0; i<26; i++)
        alphabet[i] = char(i+65);
  
    for (int i=0; i<strlen(s); i++)
        if (isalpha(s[i])) 
        {
            int index = indexOf(s[i]);
            if ((index - key) >= 0) s[i] = alphabet[(index-key) % 26];
            else s[i] = alphabet[26-key+index];
        }
 
    delete[] alphabet;
}
 
void encode(char* s,int key)
{
    char* alphabet = new char[26];
   
    for (int i=0; i<26; i++)
        alphabet[i] = char(i+65);
 
    for (int i=0; i<strlen(s); i++)
        if (isalpha(s[i])) s[i] = alphabet[(indexOf(s[i])+key) % 26];
       
    delete[] alphabet;
 
}
 
int indexOf(char symbol)
{
    for (int i=0; i<26; i++)
        if ( ((i+65) == symbol) || ((i+97) == symbol) ) return i;
    return -1;
}
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
21.06.2011, 15:31     строки #3
Блин, опоздал. Ладно, всё равно держите:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string.h>
 
using namespace std;
 
int cypher_key;
 
void decypher( char &c )
{
    if( isalpha( c ) )
    {
        c -= cypher_key;
 
        if( c < 'A' )
           c = 'Z' - ('A' - c - 1);
    }
}
 
int main(  )
{
    string input;
 
    char *in_name = "./in.txt";
    char *out_name = "./out.txt";
 
    ifstream in_s( in_name, ios::in );
 
    if( !in_s.is_open() )
        return -1;
 
    ofstream out_s( out_name, ios::out );
 
    if( !out_s.is_open() )
    {
        in_s.close();
        return -1;
    }
 
    getline( in_s, input );
    in_s >> cypher_key;
    in_s.close();
 
    for_each( input.begin(), input.end(), decypher );
 
    out_s << input;
    out_s.close();
 
    return 0;
}
murod
 Аватар для murod
-2 / 7 / 2
Регистрация: 04.11.2010
Сообщений: 163
21.06.2011, 15:35  [ТС]     строки #4
если честно ниче не понятно ! че это такое ?

Добавлено через 1 минуту
но спасибо за старание !
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
21.06.2011, 15:36     строки #5
Цитата Сообщение от murod Посмотреть сообщение
если честно ниче не понятно ! че это такое ?
Пирожок с макаронами, блин. Программа эта, которую вы просили.
Yandex
Объявления
21.06.2011, 15:36     строки
Ответ Создать тему
Опции темы

Текущее время: 00:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru