#include int is_reverse(const char * s1, const char * s2) { const char * r2 = s2; while (*r2 != 0) ++r2; while (r2 != s2 && *s1 != 0) { --r2; if (*r2 != *s1) return 0; ++s1; } return (r2 == s2 && *s1 == 0); } int main(int argc, const char * argv[]) { for(int i = 1; i < argc; ++i) for (int j = i + 1; j < argc; ++j) if (is_reverse(argv[i], argv[j])) printf("%s %s\n", argv[i], argv[j]); }