一)strrev()函数的实现
原型:extern char *strrev(char *s);
用法:#include <string.h>
功能:把字符串s的所有字符的顺序颠倒过来(不包括空字符NULL)。
说明:返回指向颠倒顺序后的字符串指针。
①实现方法一:
void strrev(char *s) { if(NULL == s) return; char *pBegin = s; char *pEnd = s + strlen(s) - 1; char pTemp; while(pBegin < pEnd) { pTemp = *pBegin; *pBegin = *pEnd; *pEnd = pTemp; ++ pBegin, -- pEnd; } }
②实现方法二:
//采用递归的方法 void reverse(char *s) { if (*s) { int i; char c; i = strlen(s) - 1; c = s[i]; s[i] = 0; reverse(s); for (i = strlen(s); i > 0 ; i--) { s[i] = s[i-1]; } s[0] = c; } }
void reverse(char *s) { if (*s) { char *p = s; char c = s[0]; while(*p) { *p = *(p + 1); ++ p; } reverse(s); s[strlen(s)] = c; } }