首页 > 代码库 > c - 字符串的反转

c - 字符串的反转

1,递归实现

 1 // 递归实现字符串反转(可通过栈的调用来加深理解).      2 char * 3 reverse(char *c) { 4     if(!c) 5         return NULL; 6     int len = strlen(c); 7     if(len > 1) { 8         char tmp = c[0]; 9         c[0] = c[len - 1];10         c[len - 1] = \0;    //尾部的字符在下一次递归时不处理.11         reverse(c + 1);12         c[len - 1] = tmp;13     }14     return c;15 }

2,非递归实现(比较简单)

 1 //非递归实现. 2 void 3 non_recursive(char *c) { 4     int len = strlen(c); 5     char tmp; 6     for(int i = 0; i < len / 2; i++) { 7         tmp = c[i]; 8         c[i] = c[len - i - 1]; 9         c[len - i - 1] = tmp;10     }11 }

 

c - 字符串的反转