Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,987 questions

51,931 answers

573 users

How to reverse the middle words of a string in C++

1 Answer

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

std::string reverseMiddleWords(const std::string& s) {
    std::stringstream ss(s);
    std::vector<std::string> words;
    std::string word;

    // Split into words
    while (ss >> word) {
        words.push_back(word);
    }

    // If fewer than 3 words, nothing to reverse
    if (words.size() < 3) return s;

    // Reverse middle words
    for (size_t i = 1; i < words.size() - 1; ++i) {
        reverse(words[i].begin(), words[i].end());
    }

    // Rebuild the string
    std::string result;
    for (size_t i = 0; i < words.size(); ++i) {
        result += words[i];
        if (i + 1 < words.size()) result += " ";
    }

    return result;
}

int main() {
    std::string input = "Hello how are you today";
    
    std::cout << reverseMiddleWords(input) << std::endl;
}

 
   
/*
run:
   
Hello woh era uoy today

*/

 



answered Dec 11, 2019 by avibootz
edited Dec 25, 2025 by avibootz
...