C语言字符串反转函数

C语言中所谓的字符串不过是字符数组,后跟一个0x00字符标识结尾,所以反转起来很容易,只要一个循环依次将第一个字符和最后一个字符交换,第二个字符和倒数第二个字符交换……如果最中间有两个字符(即需要反转的字符串长度为偶数),那就交换,如果最中间有一个字符(即需要反转的字符串长度为奇数),那就不需要碰它。还有就是最后一个用来标识字符串结尾的0x00字符不用动它。

代码如下:

void reversestr(char *str)
{
  int i = 0;
  char temp;
  char *s1,*s2;
  while(*str != '\0')
  {
    i++;str++;
  }
  str -= sizeof(char)*i;
  s1 = str;
  s2 = str + sizeof(char)*i - 1;
  for(s1=str;s1<s2;s1++,s2--)
  {
    temp = *s1;
    *s1=*s2;
    *s2=*s1;
  }
}
原文地址:https://www.cnblogs.com/zpehome/p/3092674.html