#include #include #include #include #define ASCII_OFFSET 0x20 void reverse( char *buf, int size ) { int i; for( i = 0; i < size; i++ ) { if(!isalpha(buf[i])) continue; if( isupper(buf[i]) ) buf[i] += ASCII_OFFSET; else buf[i] -= ASCII_OFFSET; } } void inverse( char *buf, int size ) { int i, s = size-1, len; for( i = 0, len = (int)(size/2); i < len; i++ ) { buf[i] ^= buf[s-i]; buf[s-i] ^= buf[i]; buf[i] ^= buf[s-i]; } } int count( char* buf, int size ) { int i, count = 0; for( i = 0; i < size; i++ ) { if(isupper(buf[i])) count++; } return count; }