// 递归实现字符串反转 char *reverse(char *str) { if( !str ) { return NULL; } int len = strlen(str); if( len > 1 ) { char ctemp =str[0]; str[0] = str[len-1]; str[len-1] = '/0';// 最后一个字符在下次递归时不再处理 reverse(str+1); // 递归调用 str[len-1] = ctemp; } return str; } // 非递归实现字符串反转 char *reverse(char *str) { if( !str ) { return NULL; } int len = strlen(str); char temp; for( int i = 0; i < len / 2; i++ ) { // 交换前后两个相应位置的字符 temp = *(str + i); *(str + i) = *(str + len - 1 - i); *(str + len - 1 - i) = temp; } return str; } int _tmain(int argc, _TCHAR* argv[]) { char src[] = {"abcdef"}; char *pdest = reverse(src); getchar(); return 0; }