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;
}
第一次字符串遍历时不进行任何输出,将输出的函数放入程序栈,先进后出的处理模式