一)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;
}
}