Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Двумерный массив (с кодом готовым) http://www.cyberforum.ru/c-beginners/thread2415955.html
Помогите мне разобраться у меня выводит с 5 по а нужно 1 по #include <iostream> #include <math.h> #include <stdio.h> #include <ctime> #include <conio.h> #include <locale.h> #define M 5
C (СИ) Middle не изменяется в бинарном поиске
#include <windows.h> #include <stdio.h> #include <stdlib.h> #define TRUE 1; #define FALSE 0; #define INVALID_ARGUMENT_STRING " был NULL" typedef (*comparison_t)(int x, int y);
Программа которая считает стоимость разговора по телефона C (СИ)
Вообщем нужно сделать программу , которая считает стоимость разговора по телефона ( минуты) То есть у нас есть 4 города У каждого города свой код .. и вместе с этим годом указана цена звонка за...
C (СИ) Для задачи 1 определить тип заданных выражений и найти их значе-ния 1. Для задачи 1 определить тип заданных выражений и найти их значе-ния. 2. Составить систему тестов и вычислить полученное выражение для не-скольких значений Х, определить при каких Х выражение не... http://www.cyberforum.ru/c-beginners/thread2415723.html
C (СИ) Матрицы http://www.cyberforum.ru/c-beginners/thread2415686.html
Надо сделать транспонирование матриц, чтобы слева была обычная матрица, а справа - транспонированная. Есть код, где просто две матрицы отдельно посчитались, а надо построчно, транспонируя по...
Потеря памяти C (СИ)
В универе дали примитивную задачку: возведение числа в степень. Система тестов у нас на git'e, все OK. Прохожу как Posititve tests, так и Negative test's. Но, не прохожу проверку memory passed (то...
C (СИ) Запреты в Си
Всем привет! Народ, кто знает, что явно запрещено стандартом делать при программирование на си? Уже устал искать) Спасибо.
C (СИ) Бинарное дерево Здравствуйте! У меня есть 2 функции для создания дерева и 1 для прохода по дереву. Каждый раз при вызове функции обхода выполняется только первое условие (т.е. дерево пустое). Наверняка ошибка при... http://www.cyberforum.ru/c-beginners/thread2415654.html
C (СИ) Простая Графика на чистом Си http://www.cyberforum.ru/c-beginners/thread2415538.html
Всем привет! На чистом Си нужна простая графическая библиотека для работы в visual studio, которая может соединить n-точек в линию с выводом на экран.
C (СИ) АВЛ дерево без рекурсии и без указателей на предков Здравствуйте ,нужно сделать АВЛ дерево, с функциями добавления и удаления без рекурсии и без указателей на предков ,написал все функции ,но не могу понять как и когда делать балансировку ,помогите... http://www.cyberforum.ru/c-beginners/thread2415517.html
SergijKazmiruk
0 / 0 / 0
Регистрация: 05.07.2015
Сообщений: 2
0

Переход между указателями char*, const char*

09.03.2019, 18:44. Просмотров 192. Ответов 2
Метки (Все метки)

Имею уже две подготовленные функции:

C
1
2
char* reverse(const char* text);
char* vigenere_encrypt(const char* key, const char* text);
и нужно зделать еще одну, которая результат выполнения первой функции направит во вторую функцию. А в конце выведет уже готовый результат.

C
1
2
3
4
5
6
7
8
void bmp_encrypt(const char* key, const char* text)
{
    char* reversed = reverse(text);
    char* encrypted = vigenere_encrypt(key, (const char*)reversed);
    printf("%s\n", encrypted);
}
 
bmp_encrypt("CompuTeR", "Hello world!");
В результате исполнение етого кода получаю ошибку адресации памяти.
В чем тут может быть проблема? Уже не в силах здесь экспериментировать ... и искать ошибку.

Добавлено через 10 минут
Добавлю еще код этих функций
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
char* reverse(const char* text)
{
    char* dest = calloc(strlen(text) + 1, sizeof(char));
    char* ptr = dest;
    
    for(int i = 0; i < strlen(text); i++)
    {
        *(ptr + strlen(text) - i - 1) = toupper(*(text + i));
    }   
    
    return dest;
}
 
char* vigenere_encrypt(const char* key, const char* text)
{
    
    char* dest_key = calloc(strlen(text) + 1, sizeof(char));
    char* ptr_key = dest_key;
    
    char* dest_text = calloc(strlen(text) + 1, sizeof(char));
    char* ptr_text = dest_text;
    
    char* dest_code = calloc(strlen(text) + 1, sizeof(char));
    
    while(*key != '0')
    {
        *ptr_key++ = tolower(*key++);
    }
    
    while(*text != '0')
    {
        *ptr_text++ = tolower(*text++);
    }   
    
    for(int i = 0, k = 0; i <= (strlen(dest_text) + 0); i++, k++)
    {
        if(k == strlen(dest_key))
        {
            k = 0;
        }
        if(isalpha(dest_text[i]))
        { 
            dest_code[i] = dest_key[k];
            dest_code[i] = toupper((dest_text[i] + dest_code[i] - 2 * 'a') % 26 + 'a');
        }
        else
        {
            dest_code[i] = dest_text[i];
            k--;
        }
    }
 
    return dest_code;
}


Вернуться к обсуждению:
Переход между указателями char*, const char*
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2019, 18:44
Готовые ответы и решения:

Переход с 10 на 17 Студию 2440 =: невозможно преобразовать "const char [2] в char*
Доброго Нового года! Через пару дней сдавать контрольную работу, которую сделал ещё вначале...

CONST_RETURN char *__cdecl strstr (const char *_Str, const char *_SubStr)
#include &lt;stdio.h&gt; #include &lt;string.h&gt; char tracks = { &quot;ya ostavil svoe serdce v harvardskom...

Ошибка в коде: несовместимы типы операндов (char и const char)
Текст не содержит знаков препинания и набран одинаковым шрифтом. Составить программу определения...

Const char нельзя присвоить сущность типа char
Здравствуйте! Начинаю изучать Си И вот у меня немного не получается написать свою первую...

Приведение char (*) [N] к const char (*) [N]
Как вообще сделать такую вещь правильно? Скажем, завёл я массив из N символов: char arr;...

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