您的位置:首页 > 编程语言 > C语言/C++

使用C/C++实现对字符串的反转(递归和非递归)

2013-10-28 15:50 344 查看
这是非递归的:

/*实现字符串翻转*/  

char* reverse_str(char* str)  

{  

    if(NULL == str) //字符串为空直接返回  

    {  

        return str;  

    }  

    char *begin;  

    char *end;  

    begin = end = str;  

  

    while(*end != '\0') //end指向字符串的末尾  

    {  

        end++;  

    }  

    --end;  

  

    char temp;  

    while(begin < end) //交换两个字符  

    {  

        temp = *begin;  

        *begin = *end;  

        *end = temp;  

        begin++;  

        end--;  

    }  

  

    return str; //返回结果  

}  

void main()  

{  

    char str[] = "123456";  

    printf(reverse_str(str));  

}  

递归的:

char *reverse(char *str)
{
  int len = strlen(str);
  if( len > 1 )
  {
    char ctemp =str[0] ;
    str[0] = str[len-1];
    str[len-1] = '\0';
    reverse(str+1);
    str[len-1] =ctemp;
  }
  return str;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: