#include <stdio.h>
#include <string.h>
#include <stdbool.h>
bool is_letter(char x) {
return ((x >= 'a' && x <= 'z') || (x >= 'A' && x <= 'Z'));
}
void swap(char* ch1, char* ch2) {
char tmp = *ch1;
*ch1 = *ch2;
*ch2 = tmp;
}
void reverse(char s[]) {
int right = strlen(s) - 1, left = 0;
while (left < right) {
if (!is_letter(s[left]))
left++;
else if (!is_letter(s[right]))
right--;
else {
swap(&s[left], &s[right]);
left++;
right--;
}
}
}
int main()
{
char s[] = "a#b$%c&*(def!";
reverse(s);
puts(s);
return 0;
}
/*
run:
f#e$%d&*(cba!
*/