私はCでrot13アルゴリズムを実装しようとしています。しかし、私はその言語にあまり精通していないため、ここでのコードにいくつかの問題があります。
基本的に、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;
}
ここにはたくさんの穴があることを知っています-これを修正する方法を教えていただけますか?