#include <stdio.h>
void caesar(char bemenet[], char eredmeny[], int n){
int i = 0;
for(i = 0; bemenet[i] != '\0'; i++) {
if(bemenet[i] == 'z') {
eredmeny[i] = 'a';
eredmeny[i] += n-1;
}
else
{
eredmeny[i] += n;
}
}
eredmeny[i] = '\0';
}
int main(){
char tomb1[]="caesarkodolas";
char tomb2[]="";
caesar(tomb1,tomb2,1);
printf("%s \n",tomb2);
return 0;
}
我對「eredmeny」(結果)這一點: 「dbftbslpepmb」但tomb2 =>☺dbftbslpepmb這也不行..因爲我有一個額外的字符|☺| ..凱撒代碼在結果C額外信
輸出數組太小,所以這是明顯的未定義的行爲。 –
這種方法已被破壞 - 它不適用於'1'上方的'n'。嘗試使用'caesar(tomb1,tomb2,10);'[查看一些垃圾輸出](http://ideone.com/cyVmK0)「修改後的代碼。 – dasblinkenlight