#include #include int force = 0; void reverse(char s[]) { int c, i, j; for (i=0, j=strlen(s)-1; i < j;i++, j--) { c = s[i]; s[i] = s [j]; s[j] = c; } } char convert(char a) { switch(a) { case 'd': return 'p'; case 'p': return 'd'; case 'w': return 'm'; case 'm': return 'w'; case 'n': return 'u'; case 'u': return 'n'; case 'b': return 'q'; case 'q': return 'b'; // not mapped case 'o': return 'o'; case 's': return 's'; case 'z': return 'z'; } if(force == 1) return a; else return '*'; } void doit(char *argv) { reverse(argv); for(int i=0;argv[i]!='\0';i++) { printf("%c", convert(argv[i])); } printf("\n"); } int main(int argc, char *argv[]) { if(argc == 2) { doit(argv[1]); } else if(argc > 2) { if(strcmp(argv[1], "-f") == 0) { force = 1; doit(argv[2]); } else if(strcmp(argv[2], "-f") == 0) { force = 1; doit(argv[1]); } else doit(argv[1]); } return 0; }