zoukankan      html  css  js  c++  java
  • 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('' != *p)  
        {
            Reverse(p + 1);  
            cout<<*p<<" ";         
        }
    }
      
    int main()  
    {
        char *string = "1234567";  
        Reverse(string);  
        cout<<endl;  
    }
    
    感谢阅读,如有问题,请批评指正,谢谢。
  • 相关阅读:
    Linux内存初始化
    linux PCI设备初始化过程
    Linux网络地址转换分析
    Linux内核中流量控制
    IPSEC实现
    ip_conntrack 实现
    module_init宏解析
    IP隧道基础研究
    IPV6介绍
    Golang的接口
  • 原文地址:https://www.cnblogs.com/clwsec/p/11698891.html
Copyright © 2011-2022 走看看