C++ 实现字符串逆序的三种方法

# 使用库函数

使用 C++ string 类会有很多方便的方法,包括字符串逆序

#include <algorithm>
reverse(str.begin(), str.end());

# 额外函数实现

#include <iostream>
#include <string.h>
using namespace std;
void Reverse(char *str){
	if(NULL == str){
		return ;
	}
	char *pBegin = str;
	char *pEnd   = str + strlen(str) - 1;
 	char tmp;    //创建三个指针
	while(pBegin < pEnd){
		tmp = *pBegin;
		*pBegin = *pEnd;
		*pEnd = tmp;
		pBegin ++, pEnd --;
	}//直到两侧指针指向的内容全部交换退出循环
}
int main(){
	char str[] = "123456789";
	cout << str << endl;
	Reverse(str);//函数名要与库函数有区别
	cout << str << endl;
}

# 使用递归函数实现

#include <iostream>
using namespace std; 
void Reverse(const char *p){
    if('\0' != *p){
        Reverse(p + 1);
        cout << *p << " ";
    }
}
int main(){
    string input = "1234567";
    Reverse(input.cstr());//cstr 代表的是 const char *
    cout << endl;
}

2020-11-09-08-49-11

第一次字符串遍历时不进行任何输出,将输出的函数放入程序栈,先进后出的处理模式