#include <stdio.h>
#include <string.h>
/*
把字符串整体reverse
*/
void _reverse(char *begin, char *end)
{
while(end > begin){
char tmp = *end;
*end = *begin;
*begin = tmp;
begin ++;
end --;
}
}
/*
实现
*/
void reverse(char *str)
{
if(str == NULL) return;
char *end = str + strlen(str);
end--;
char *firstdot;
char *seconddot;
_reverse(str, end);//先整体_reverse
firstdot = strchr(str, '.');
seconddot = strchr(firstdot+1, '.');
_reverse(str, firstdot-1);//_reverse第一个'.'之前的部分
_reverse(firstdot+1, seconddot-1);//_reverse两个'.'之间的部分
_reverse(seconddot+1, end);//_reverse第二个'.'之后的部分
}
int main()
{
char a[] = "www.google.com";
char b[] = "mail.netease.com";
reverse(a);
printf("%s\n", a );
reverse(b);
printf("%s\n", b );
return 0;
}
函数实现将网址进行如下操作
www.google.com转成com.google.www 及mail.netease.com转成com.netease.mail
不允许用STL,空间为0(1)
void reverse(cha * ptr){}