通过从中间删除char来编码字符串

时间:2019-04-07 03:52:43

标签: c string

我需要按如下方式加密算法

算法:

最初编码的字符串将为空。给定一个字符串,每次将选择字符串的中间字符,并将其应用于编码后的字符串。 即,如果字符串为sanji,则将选择第一个n。 EncodedStr将为"n",剩余消息为"saji",将选择“ a”(如果是偶数字母,则将选择最中间的中间字母) EncodedStr将为“ na”,剩余消息为“ sji”。将选择“ j”。 编码的Str为"naj",其余消息为“ si”。将选择“ 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;
}

我的代码中几乎没有错误。有人可以帮助我修复错误吗?

0 个答案:

没有答案