📜  在C / C++中反转字符串的不同方法

📅  最后修改于: 2021-05-30 17:10:40             🧑  作者: Mango

给定一个字符串,编写一个C / C++程序来反转它。

反向字符串

  1. 通过交换字符写入自己的逆向函数:一个简单的解决方案是我们自己写的反转函数,以扭转在C++字符串。
    // A Simple C++ program to reverse a string
    #include 
    using namespace std;
      
    // Function to reverse a string
    void reverseStr(string& str)
    {
        int n = str.length();
      
        // Swap character starting from two
        // corners
        for (int i = 0; i < n / 2; i++)
            swap(str[i], str[n - i - 1]);
    }
      
    // Driver program
    int main()
    {
        string str = "geeksforgeeks";
        reverseStr(str);
        cout << str;
        return 0;
    }
    

    输出 :

    skeegrofskeeg

  2. 使用内置的“反向”函数: “ algorithm”头文件中具有直接函数,可以进行反向操作,从而节省了编程时间。
    // Reverses elements in [begin, end]
    void reverse (BidirectionalIterator begin, 
    BidirectionalIterator end);
    
    // A quickly written program for reversing a string
    // using reverse()
    #include 
    using namespace std;
    int main()
    {
        string str = "geeksforgeeks";
      
        // Reverse str[begin..end]
        reverse(str.begin(), str.end());
      
        cout << str;
        return 0;
    }
    

    输出 :

    skeegrofskeeg
  3. 仅反向打印
    // C++ program to print reverse of a string
    #include 
    using namespace std;
      
    // Function to reverse a string
    void reverse(string str)
    {
       for (int i=str.length()-1; i>=0; i--)
          cout << str[i]; 
    }
      
    // Driver code
    int main(void)
    {
        string s = "GeeksforGeeks";
        reverse(s);
        return (0);
    }
    

    输出:

    skeegrofskeeG
    
  4. 反向获取const字符串:
    // C++ program to get reverse of a const string
    #include 
    using namespace std;
      
    // Function to reverse string and return
    // reverse string pointer of that
    char* reverseConstString(char const* str)
    {
        // find length of string
        int n = strlen(str);
      
        // create a dynamic pointer char array
        char *rev = new char[n+1];
      
        // copy of string to ptr array
        strcpy(rev, str);
      
        // Swap character starting from two
        // corners
        for (int i=0, j=n-1; i

    输出:

    skeeGrofskeeG
    
  5. 使用构造函数的反向字符串:将反向迭代器传递给构造函数将返回一个反向字符串。
    // A simple C++ program to reverse string using constructor 
    #include  
    using namespace std; 
    int main(){
      
        string str = "GeeksforGeeks";
      
        //Use of reverse iterators
        string rev = string(str.rbegin(),str.rend());
      
        cout<

    输出:

    skeeGrofskeeG
    
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”