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;  
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM