我正在尝试构建一个算法,其中我有两个数组,即
char cipher[MAX_CIPHER_SIZE+1]={0}, text[MAX_TEXT_SIZE+1]={0};
所以在这种情况下,任何一个数组都可能比另一个更大。因此,使用密码数组,我想找到一个匹配的字符,并将其替换为密码数组中的下一个字符。所以在这种情况下
int count=0;
for(i=0;i<=ciphercount;i++){
for(j=0;j<=textcount;j++){
if(cipher[i] == text[j] && cipher[count++] != '\0')
{
temp = cipher[count++];
text[j] = cipher[count++];
printf("%c\n",temp);
temp = "";
}
}
}
不幸的是,它找到并跳过了分配部分。另外,如果我输入一个长文本,它会缩短文本。这不包括大部分文本。
答案 0 :(得分:0)
我不确定你的代码的目的是什么,但是-Bob__想知道,我担心数量。 您一直在增加它,并且从未将其重置为0。 因此,在更糟糕的情况下,最后计数等于ciphercount * textcount * 3,它大于MAX_CIPHER_SIZE + 1,我猜。