String case reverse function in C
The case determination code (src[i] &lt;= 'Z' &amp;&amp; src[i] &gt;= 'A') doesn't look right (think about locales). isupper and islower are specifically designed to deal with that. Besides, you are already using toupper and tolower.