Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Dashie
0 / 0 / 0
Регистрация: 10.01.2014
Сообщений: 5
#1

Шифр Цезаря. Исправить цикл или замените любым другим - C++

07.05.2014, 23:28. Просмотров 239. Ответов 2
Метки нет (Все метки)

Здравствуйте, есть такой код, в этом цикле "while (a[i]!='\0')" есть ошибка, ну точнее есть "особый случай" по словам Преподавателя, когда эта программа будет кодировать не правильно, помогите исправить цикл или замените любым другим
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
// шифр.cpp: определяет точку входа для консольного приложения.
//
 
 
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <ctype.h>
using namespace std;
 
void shifr (char*,char*,int);
 
int main() {
    setlocale (LC_ALL, "rus");
    char str[255], sh_str[255]={0};
    for(;;){
        cout <<"введите строку \n";
        gets(str);
        //printf("%c\n",94);
        shifr(str, sh_str, 30);
        cout <<"зашифрованна :\n"<< sh_str <<endl;
        shifr(sh_str, str, -30);
        cout <<"разшифрованна :\n"<< str <<endl;
 
    }
    return 0;
 
}
 
void shifr (char*a,char*b, int sh) {
    int i=0;
    while (a[i]!='\0')
    {
        //if (isalnum (a[i]))
        if(*(a+i)+sh>126)
            b[i]=*(a+i)+sh-127+32;
        else if(*(a+i)+sh<32)
            b[i]=*(a+i)+sh+127-32;
        else
            b[i]=*(a+i)+sh;
        //else
            //b[i]=a[i];
        i++; 
    } 
    b[i]='\0';
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2014, 23:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Шифр Цезаря. Исправить цикл или замените любым другим (C++):

Шифр Цезаря - C++
Добрый вечер, не могу реализовать шифр цезаря на C builder, программа компилится нормально, но при нажатии на кнопку выдаёт ошибку. Вот код...

Шифр Цезаря - C++
Объясните пожалуйста есть формула для шифра Цезаря :En(x) = (x +n)mod26 почему в коде надо еще отнять 65, а потом прибавить. 65- это код...

Шифр цезаря - C++
Столкнулся с такой проблемой нужно &quot;Разработать прикладное приложение для шифрования текста с помощью шифра простой замены. Приложение...

Шифр Цезаря - C++
есть код программы для взлома Шыффра Цэзара но никак немогу доделать ее чтобы взломать строку VTA.P,JR;STJQATPZX,VJX,JF;A...

C++ Шифр Цезаря - C++
Help нужно написать программу на С++, которая шифрует русские и английские слова. Делает запрос на сдвиг. Зашифрованный код переводил...

Шифр Цезаря - C++
Ребята , помогите решить задачку, битый час сижу, не могу понять . Надо чтобы введенная буква алфавита сдвигалась на 3 буквы вперед...

2
nmcf
5680 / 4991 / 1701
Регистрация: 14.04.2014
Сообщений: 20,368
07.05.2014, 23:40 #2
Когда конец строки не отмечен, что ли?
0
Dashie
0 / 0 / 0
Регистрация: 10.01.2014
Сообщений: 5
07.05.2014, 23:45  [ТС] #3
Возможно, там нужно вообщем другой вариант этого цикла написать, чтобы работало норм.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2014, 23:45
Привет! Вот еще темы с ответами:

Шифр Цезаря - C++
Створити програму, що реалізовує алгоритм дешифрування Цезаря, для латинського алфавіту з прогресуючим кроком від 3 до 10 (ВЕЛИКІ малі...

Шифр Цезаря - C++
Вот есть готовый код программы, может, кому понадобиться:) #include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; using namespace...

Шифр Цезаря - C++
text - исходный code - закодированный decode - дешифрованный после компиляции в файл code в конец ложится пробел, откуда он...

Шифр Цезаря (пароль) - C++
Помогите сделать, пожалуйста. Чтобы пароль заменялся звездочками. П.5.18 Правил Запрещено размещать задания и решения в виде картинок...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.