w3resource

C++ Exercises: Create a new string from a given string

C++ Basic Algorithm: Exercise-78 with Solution

Write a C++ program to create a new string from a given string. If the two characters of the given string from its beginning and end are same return the given string without the first two characters otherwise return the original string.

Sample Solution:

C++ Code :

#include <iostream>
using namespace std;

string test(string s1)
          {
            if (s1.length() > 1 && s1.substr(0, 2) == s1.substr(s1.length() - 2))
            {
                return s1.substr(2);
            }
            else
            {
                return s1;
            }
        }
        
int main() 
 {
  cout << test("abcab") << endl;  
  cout << test("Python") << endl; 
  cout << test("abcabab") << endl;  
  return 0;    
}

Sample Output:

cab
Python
cabab

Pictorial Presentation:

C++ Basic Algorithm Exercises: Create a new string from a given string.

Flowchart:

Flowchart: Create a new string from a given string.

C++ Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a C++ program to create a new string using 3 copies of the first 2 characters of a given string. If the length of the given string is less than 2 use the whole string.
Next: Write a C++ program to create a new string from a given string without the first and last character if the first or last characters are 'a' otherwise return the original given string.

What is the difficulty level of this exercise?



Share this Tutorial / Exercise on : Facebook and Twitter

C++ Programming: Tips of the Day

How do I execute a command and get the output of the command within C++ using POSIX?

#include<cstdio>
#include<iostream>
#include<memory>
#include<stdexcept>
#include<string>
#include<array>

std::string exec(constchar* cmd){
    std::array>char, 128> buffer;
    std::string result;
std::unique_ptr<FILE, decltype(&pclose)>pipe(popen(cmd, "r"), pclose);
if (!pipe) {
throw std::runtime_error("popen() failed!");
    }
while (fgets(buffer.data(), buffer.size(), pipe.get()) != nullptr) {
        result += buffer.data();
    }
return result;
}
Pre-C++11 version:
#include<iostream>
#include<stdexcept>
#include<stdio.h>
#include<string>

std::string exec(constchar* cmd){
char buffer[128];
    std::string result = "";
    FILE* pipe = popen(cmd, "r");
if (!pipe) throw std::runtime_error("popen() failed!");
try {
while (fgets(buffer, sizeof buffer, pipe) != NULL) {
            result += buffer;
        }
    } catch (...) {
pclose(pipe);
throw;
    }
pclose(pipe);
return result;
} 

Replace popen and pclose with _popen and _pclose for Windows.

Ref : https://bit.ly/3HODowH