C에서 rot13-algorithm을 구현하려고합니다. 하지만 그 언어에 익숙하지 않아서 여기에 제 코드에 몇 가지 문제가 있습니다.Rot13-Implementation 정보
기본적으로 args []의 모든 문자를 13 위치 위로 회전하고 싶습니다. 는하지만이 코드는 매우 부진 할 것으로 보인다 :
#include <stdio.h>
char[] rotate(char c[]) {
char single;
int i;
int alen = sizeof(c)/sizeof(c[0]);
char out[alen];
for(i=0;i<=alen;i+=1) {
if(c[i]>='a' && (c[i]+13)<='z'){
out[i] = c[i]+13;
}
}
return out;
}
int main(int argc, char *argv[]) {
printf("The given args will be rotated\n");
int i;
char rotated[sizeof(argv)/sizeof(argv[0])];
rotated = rotate(argv);
/* printing rotated[] later on */
return 0;
}
나는 구멍이 많이 여기가 알 - 당신은 어떻게이 문제를 해결하는 저를 보여줄 수?
당신이 도움 enlightend 받고 코드를 단계별로 (당신이 리눅스에 있다면'gdb' 같은) 디버거를 사용하여 배우고 싶은 수 있습니다. – alk
'gcc -Wall -Werror -pedantic -std = c99' (리눅스에서) 코드를 먼저 컴파일 해보십시오. –
결코 끝나지 않을 것입니다. . 함수는 배열을 반환 할 수 없으므로'char [] rotate (char c []) {/ * ... * /}'는 컴파일되지 않습니다. 또한'rotate = rotate (argv);'와 같이 배열 전체에 할당 할 수 없습니다. 어쩌면 당신은 당신의 문제에 대해 더 구체적 일 수 있습니다. –