Закодируйте строку, удалив символ из середины - PullRequest
0 голосов
/ 07 апреля 2019

Мне нужно зашифровать алгоритм следующим образом

Algortihm:

Первоначально закодированная строка будет пустой.При заданной строке каждый раз выбирается средний символ строки и добавляется к закодированной строке.Т.е., если строка sanji, будут выбраны первые n.EncodedStr будет "n", остальное сообщение - "saji", будет выбрано «a» (в случае четных букв будет выбрано самое левое среднее) EncodedStr будет «na», оставшееся сообщение - «sji». "Jбудет выбрано.Кодированная строка - "naj", оставшееся сообщение - "си"."s" будет выбрано.с последующим i.Final кодированным str будет "najsi", а для декодирования следует обратное.

Вот мой код для кодирования и декодирования:

char * encode(char *str) {
    if (str == NULL)
        return NULL;
    int len = findLen(str);
    int temp = len;
    if (len == 1)
        return str;
    int k = 0;
    int mid = 0,i;
    int repl_chr = 'A';
    char * en = (char*)malloc(sizeof(char)*len);
    while (len > 0){
        mid = len / 2;
        en[k] = str[mid];
        k++;
        for (i = mid; i < len; i++){
            str[i] = str[i + 1];
        }
        len--;

        //memmove(&str[mid], &str[mid + 1], temp - mid);

    }
    printf("%s",en);
    return en;
}
char* decode(char *str) {
    if (str == NULL)
        return NULL;
    int len = findLen(str);
    if (len == 1)
        return str;
    char * en = (char*)malloc(sizeof(char)*len);
    return NULL;
}

int findLen(char *str){
    int i;
    for (i = 0; str[i] != '\0'; i++){}
    return i;
}

У меня есть несколько ошибок в моем кодеКто-нибудь может мне помочь исправить ошибки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...