字符串反转简单实现

来源:互联网 发布:js radio 点击事件 编辑:程序博客网 时间:2024/06/08 08:41
#include<iostream>using namespace std;void reverse(char *s, int l, int r) // 数组版本,l r 从0开始计数 {  int len = strlen(s);  int m = (l+r)/2;  if(len%2 != 0)  { for (int i = l; i < m; i++) {    char tmp;tmp = s[i];s[i] = s[r-i];    s[r-i] = tmp; }    }  else  {    for (int j = l; j <=m; j++ ){   char tmp;tmp = s[j];s[j] = s[r-j];    s[r-j] = tmp;}  }}void reverse2(char *s)  //指针版本{  int len = strlen(s);  char *p = s+len-1;  while(s != p)  {     char tmp;tmp = *p;*p = *s;*s = tmp;    s++;if(s == p)    //消除当len是偶数时的影响break;else     p--;  } }int main(){ char s[] = "This is hello world";  char h[] = "abcdef";  reverse2(s);  reverse2(h);  cout<<s<<endl;  cout<<h<<endl;  return 0;}

 

注意当字符串的个数是偶数时,版本2中的细节(p s 不可能相等)。