#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 =>이 .. OK 아니다 ☺dbftbslpepmb 내가 여분의 문자가 원인 | ☺ | ..시저 코드
출력 배열이 너무 작아서 뻔뻔스럽지 않은 정의되지 않은 동작입니다. –
이 접근법은 깨졌습니다. '1'보다 위의 'n'에 대해서는 작동하지 않습니다. 'caesar (tomb1, tomb2,10);'(일부 가비지 출력을 보려면) (http://ideone.com/cyVmK0)로 수정 된 코드를 시도해보십시오. – dasblinkenlight