如果它是重复的C,请添加字母

时间:2017-03-24 20:54:19

标签: c string

我在playfair密码上工作,我有一个问题。

如果下一个字母重复,我需要在字符串中添加字母X. 以下示例:HELLOWORLD 将该字符串分成两对(HE LL OW OR LD),如果它重复,则添加X.(只有当该对重复时才需要添加X. 之后:HE LX LO WO RL D - > HELXLOWORLD

我的代码:

for (j = 0, i = 0; i < len_text; i++, j++) {
    if (i % 2 == 0) {
        if (my_text[i] == my_text[i+1]) {
            text_x[j] = my_text[i];
            i++;
            text_x[j+1] = 'X';

            j++;
        }
        else {
            text_x[j] = my_text[i];

        }   
    }
    else if (i % 2 != 0) {
        text_x[j] = text[i];
    }   
}

我的代码无法正常运行。你能帮助我吗?谢谢。

1 个答案:

答案 0 :(得分:-1)

如果我正确理解你的问题,你可以做这样的事情。您目前正在进行此操作的方式看起来可能超出i范围。确保text_x是一个足够大的缓冲区,可以容纳您插入的额外字符(即最多len_text + len_text / 2)。

for (j = 0, i = 0; i < len_text - 1; i+=2, j+=2) {
    text_x[j] = my_text[i];
    if (my_text[i] == my_text[i+1]) {
        text_x[j+1] = 'X';
        j++;
    } 
    text_x[j+1] = my_text[i+1];
}