Cómo revertir una cadena sin usar variables incorporadas y temporales

Operaciones inversas sin variable temporal y funciones incorporadas como cadena inversa.

Puedes hacerlo usando la lógica XOR como esta:

 char* rev(char* str) { int end = strlen(str) - 1; int start = 0; while (start < end) { str[start] ^= str[end]; str[end] ^= str[start]; str[start] ^= str[end]; ++start; --end; } return str; }