C++逆序输出字符串

使用库函数

//使用库函数 
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;
int main()
{ 
	string str; 
	cin>>str;
    //调用reverse函数进行反转
	reverse(str.begin(), str.end()); 
	cout<<str<<endl; 
	return 0;
}

手写函数实现(常规思路)

#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(char *p)
{
    if('\0' != *p)  
    {
        Reverse(p + 1);  
        cout<<*p<<" ";         
    }
}
  
int main()  
{
    char *string = "1234567";  
    Reverse(string);  
    cout<<endl;  
}
posted @ 2019-10-18 16:12  煊奕  阅读(8992)  评论(0编辑  收藏  举报