Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

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

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

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2021, 10:32   #1
donatalius
Новичок
Джуниор
 
Регистрация: 19.10.2021
Сообщений: 3
По умолчанию Помогите исправить ошибки C2374; C2360

Помогите пожалуйста исправить ошибки C2374; C2360!
Задача состоит в том что нужно: Написать программу шифрования и дешифрования сообщений. Шифрование выполнить следующим образом: расположить сначала все символы, расположенные на нечетных позициях, а затем в обратном порядке все символы, расположенные на четных позициях.
Реализовать меню для выбора режима работы программы: шифрование, дешифрование и выход. Предусмотреть возможность шифрования и дешифрования программно заданной строки, если пользователем задано пустая строка.
Код:
#include <iostream>
#include <math.h>
#include <iomanip>
#include <string.h>
#include <stdio.h>
#include <cstdlib>

using namespace std;
const int string_size = 80;

int main() {
    int i = 0;
    char string[string_size];
    char newstring[string_size];
    cout << "1 - encrypt" << endl;
    cout << "2 - decrypt" << endl;
    cout << "3 - exit" << endl;
    cin >> i;
    cout << "Enter string: ";
    cin.getline(string, string_size - 1);
    while (i > 0 && i < 4) {
        switch (i) {
        case 1:

            char* ptr = string + 1, *newptr = newstring;
            while (*newptr++ = *ptr, ptr += 2, ptr < string + strlen(string));
            ptr = ptr == string + strlen(string) ? ptr - 1 : ptr - 3;
            while (*newptr++ = *ptr, ptr -= 2, ptr >= string);
            *newptr = '\0';
            cout << "New string: " << newstring << endl;

            break;
        case 2:
            char string[string_size];
            char newstring[string_size];
            cout << "Enter string: ";
            cin.getline(string, string_size - 1);
            char* ptr = string + 1, * newptr = newstring;
            while (*newptr++ = *ptr, ptr += 2, ptr < string + strlen(string));
            ptr = ptr == string + strlen(string) ? ptr - 1 : ptr - 3;
            while (*newptr++ = *ptr, ptr -= 2, ptr >= string);
            *newptr = '\0';
            cout << "New string: " << newstring << endl;

            break;
        case 3:
            cout << "exit" << endl;
            break;
        }
        cout << "1 - encrypt" << endl;
        cout << "2 - decrypt" << endl;
        cout << "3 - exit" << endl;
        cin >> i;
    }

    return 0;
}
donatalius вне форума Ответить с цитированием
Старый 19.10.2021, 12:14   #2
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 255
По умолчанию

1. Если в case объявляете переменную, заключайте этот блок в {}
2. Не используйте
Код:
using namespace std;
особенно если собрались давать имена схожие с объявленными в STL.
3. Т.к. п.2, то string (т.е. std::string) есть в STL.
4.
Код:
case 2:
            char string[string_size];
            char newstring[string_size];
Зачем вам новые переменные абсолютно такие же с абсолютно такими же именами?
5. Ваш код разумней заменить на do while() и переменных меньше будет, и код повторяться не будет, и т.д.
ForenLi на форуме Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить ошибки в С++ Snaiper Помощь студентам 0 21.03.2014 23:05
Помогите исправить ошибки dkii Общие вопросы C/C++ 2 22.12.2013 22:17
помогите исправить ошибки Euforia_PZAS09_1 Паскаль, Turbo Pascal, PascalABC.NET 0 19.10.2009 20:41
Помогите исправить ошибки Satorin Общие вопросы Delphi 4 25.12.2008 21:35

Реклама для незарегистрированных, регистрация на форуме