Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65887
  • 博文数量: 13
  • 博客积分: 1415
  • 博客等级: 上尉
  • 技术积分: 100
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-13 21:18
文章分类

全部博文(13)

文章存档

2011年(1)

2009年(12)

我的朋友

分类: C/C++

2009-09-28 15:34:53

/*
   Reverses the order of characters in the string.
   The terminating null character remains in place.
   把字符串的所有字符的顺序颠倒过来(不包括空字符NULL)。
   返回指向颠倒顺序后的字符串指针。
*/


char * my_strrev(char *str)
{
   char *right = str;
   char *left = str;
   char ch;
   while (*right) right++;
   right--;
   while (left < right)
   {
       ch = *left;
        *left++ = *right;
        *right-- = ch;
   }
   return(str);
}


阅读(698) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

fera2009-09-29 10:46:52

楼主你连抄都不会抄,原文里第二个比这个强多了,除了代码难看点。 // Solution 1. char * ReverseStringSlow(char * aStr) { int len = strlen(aStr); char * ptemp = (char*) malloc (len); for (int i = len - 1, j = 0; i >= 0; --i, ++j) { ptemp[j] = aStr[i]; } strncpy(aStr, ptemp, len); free(ptemp); return aStr; } // Solution 2: better one char * ReverseStringFast(char * aStr) { int len = strlen(aStr); char temp = '\0'; for(int i = 0; i < len / 2; ++i) {