Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В одномерном массиве, состоящем из n целых элементов, вычислить сумму элементов массива https://www.cyberforum.ru/ cpp-beginners/ thread2493633.html
В одномерном массиве, состоящем из n целых элементов, вычислить сумму элементов массива, расположенных до первого нулевого элемента #include <iostream> #define NOMINMAX #include <Windows.h>...
Нарисовать крест из символов C++
Всем привет, помагите решить задачу только использвав <iostream> Ввести длину и толщину креста и нарисовать его из символов *. Гарантируется, что и длина, и толщина - нечетные числа. Input 5 1 ; 9...
C++ Почему второе условие не включается? Приветствую, Написал простетскую программу на расчета числа, возводимого в степень. Однако по непонятной мне причине, если я ввожу 2,2, или к примеру 5,5 мне все равно выводит 1!!!! #include... https://www.cyberforum.ru/ cpp-beginners/ thread2493630.html C++ Назначить нажатию клавиш numpad указанные слова Привет. Нужно написать программу, которая записывает новое значение для каждой клавиши Numpad, и впоследствии использует эти значения при нажатии. Например, при запуске, программа запрашивает данные,... https://www.cyberforum.ru/ cpp-beginners/ thread2493618.html
Крест C++
Всем привет, помагите решить задачу только использвав <iostream> Ввести длину и толщину креста и нарисовать его из символов *. Гарантируется, что и длина, и толщина - нечетные числа. Input 5 1 ; 9...
C++ Программа шифрования слова периодически не работает Используется шифр Чейза: - Таблица (ключ) Q W E R T Y U I O P A S D F G H J K L Z X C V B N M ( ) -Слово раскладывается на две строчки из координат этих букв -Нижняя строчка умножается... https://www.cyberforum.ru/ cpp-beginners/ thread2493608.html
C++ Разложение на простые множители* Всем привет. Поможете с задачой только использвав <iostream> Задано натуральное число >= 2 . Разложить его на простые множители Input Output 15 3*5 120 2*2*2*3*5 17 17 242 ... https://www.cyberforum.ru/ cpp-beginners/ thread2493600.html C++ Определить есть ли в списке два противоположных числа
Дан список чисел. Определите, есть ли в нем два противоположных(то есть дающих в сумме 0) числа. Если такие числа есть в массиве, выведите их индексы в порядке возрастания. Если таких чисел в массиве...
C++ Задержка (Остановка) только одной функции в программе https://www.cyberforum.ru/ cpp-beginners/ thread2493559.html
В общем, осваиваю я с++, для чего делаю разнообразные элементарные программы. Создавая очередную консольную программу, мне понадобилось вывести на экран таймер, который будет отсчитывать некоторое...
C++ Запись констант в шестнадцатеричной системе Сейчас изучаю библиотеки связанные с блютуз и вот такая интересная штука почти везде используется 16-теричная система для записи в переменную ,зачем и почему? вот примеры uint8_t lap = { 0x33,... https://www.cyberforum.ru/ cpp-beginners/ thread2493552.html
C++ Проблема с g++ x32
В общих чертах есть большая программа (текстовый редактор) и при компиляции для windows x32 через mingw выходит ошибка cc1plus.exe: out of memory allocating 65536 bytes что она значит я знаю ,но как...
C++ Ошибка . undefined reference to https://www.cyberforum.ru/ cpp-beginners/ thread2493487.html
При компиляции вылетает указанная ниже ошибка. В чем может быть проблем? Linux Часть кода #include <pulse/simple.h> #include <pulse/error.h> static const pa_sample_spec ss = { .format =...
0 / 0 / 0
Регистрация: 31.03.2019
Сообщений: 6
0

Кривое преобразования с int в char, массивы - C++ - Ответ 13787129

23.08.2019, 18:57. Показов 1773. Ответов 4
Метки (Все метки)

Объясните где я сделал ошибку? почему arr и sprob в зависимости от b ++; ведут себя так, и почему так кривая получается строка?b ++; является важным элементом логики программы однако когда его нет (закомментирован b ++ строка выводится правильно (не кривой);
Суть проблемы смотрите на скринах.
Какой должен быть результат: arr "\~"
Реальность: arr ""~"
Почему так?
C++ (Qt)
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include<iostream>
#include<string>
using namespace std;
class Brute {
    int rozrad = 1,size;
    string password = "";
    char *sprob = nullptr;
    string password1() {
        string a = "q1w2e3";
        this->password = a[0];
        return a;
    }
    string BruteF() {
        int i = 33;
        for (; i < 127; i++) {
            sprob[rozrad] = (char)i;            
            if(sprob == password) {   return sprob;  }
            if (sprob[rozrad] == (char)126) 
            { 
                this->size = rozrad + 2;
                Sprob_plus1(); 
                i = 33; 
            }
        }
    }
public:
    string GetPassword() {
        if (this->password == "") { this->password = password1(); };
        return password;
    }
    void SetPassword() {
        cin >> this->password;
    }
    string Start() {
        CreateSprob();
        return BruteF();
    }
    void CreateSprob()
    {
        if (sprob == nullptr) { this->sprob = new char[2]; sprob[rozrad] = '\0'; this->rozrad = 0; }
    }
    void Sprob_plus1() 
    {
        if (sprob[rozrad] != (char)126)
        {  
            char *arr = new char[this->size];
            for (int i = 0; i < size; i++)
            {
                if (i == rozrad)
                { 
                    char a=sprob[i];
                    int b = (int)a;
                    b++;
                    arr[i]=(char)b; //ошибка
                    continue;
                }
                arr[i] = sprob[i];
            }
            delete[]sprob;
            sprob = arr;
            arr = nullptr;
        }
        if (sprob[rozrad] == (char)126) {
            if (rozrad == 0) {
            sprob[rozrad] = '!'; 
            char *newsprob = new char[this->size+1],*Zsprob;
            for (int i = 0; i < size;i++) {
                if (i == 0) { newsprob[0] = '!'; }
                newsprob[i+1] = sprob[i];
            }
            delete[]sprob;
            sprob = newsprob;
            newsprob = nullptr;
            }
            else { this->rozrad--; Sprob_plus1(); sprob[rozrad--] = (char)33;  }
        }
        this->rozrad++;
    }
};
int main() {
    Brute a;
    cout<<a.GetPassword()<<endl;
    cout <<a.Start()<<endl;
    system("pause"); return 0;
}


Вернуться к обсуждению:
Кривое преобразования с int в char, массивы C++
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Миниатюры
Кривое преобразования с int в char, массивы  
Изображения
  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.08.2019, 18:57
Готовые ответы и решения:

Нет преобразования int в char*
int main() { char s; char* kz = 0; cout &lt;&lt; &quot;Vvedite stroku: &quot;; cin &gt;&gt; s; // строку...

Преобразования массива с типа int к типу char
Помогите решить задачу. Требуется создать шаблон класса для преобразования массива с типа int к...

Как работают явные преобразования из char[] в int?
Решаю я одну задачу, в ней нужно считать информацию о книгах, вложить это всё в бинарное дерево и...

Реализация функции char *padl(const char *string, int len, int c=' ')
Реализовать функцию возвращающую указатель на новую строку длины len, полученную из string либо...

4
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.08.2019, 18:57

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как превести из char* в int и наоборот из int в char*?
Как превести из char* aa='123' в int aa=123 и наоборот из int в char* . Понимаю что самому...

Форматирование строк, char to int & int to char
Покажите как запихнуть число в строку и вытащить его обратно из строки. Вот всё просто в pawn ...

Ошибка "error C2446: :: нет преобразования "int" в "char *"
Ошибка: &quot;error C2446: :: нет преобразования &quot;int&quot; в &quot;char *&quot; Когда нажимаю двойным кликом на...

Подскажите пожалуйста с int main(int argc, char*argv[])
Если я правильно понимаю, то int argc это передача аргумента программе, т. е если argc&gt;1 то...

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