How to reverse a string by words in C++

1 Answer

0 votes
#include <iostream>
#include <algorithm>

std::string reverse_string_by_words(std::string str) {
    reverse(str.begin(), str.end());

    str.insert(str.end(), ' ');
 
    int n = str.length();
    
    for (int i = 0, j = 0; i < n; i++) {
        if (str[i] == ' ') {
            reverse(str.begin() + j, str.begin() + i);
            j = i + 1;
        }
    }
    str.pop_back();
 
    return str;
}
 
int main()
{
    std::string str = "C++ is a general purpose programming language";
 
    std::string reverse = reverse_string_by_words(str);
 
    std::cout << reverse;
    
    return 0;
}




/*
run:
          
language programming purpose general a is C++
          
*/

 



answered Sep 3, 2021 by avibootz
...