w3resource

C++ Exercises: Create a new string from a given string without the first and last character

C++ Basic Algorithm: Exercise-79 with Solution

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.

Sample Solution:

C++ Code :

#include <iostream>
using namespace std;

string test(string s1)
          {
          if (s1.length() > 0 && s1.substr(s1.length() - 1) == "a")
            {
                s1 = s1.erase(s1.length() - 1);
            }

            if (s1.length() > 0 && s1.substr(0, 1) == "a")
            {
                s1 = s1.erase(0, 1);
            }

            return s1;
          }              
        
int main() 
 {
  cout << test("abcab") << endl;  
  cout << test("python") << endl; 
  cout << test("abcda") << endl;  
  cout << test("jython") << endl;  
  return 0;    
}

Sample Output:

bcab
python
bcd
jython

Pictorial Presentation:

C++ Basic Algorithm Exercises: Create a new string from a given string without the first and last character.

Flowchart:

Flowchart: Create a new string from a given string without the first and last character.

C++ Code Editor:

Contribute your code and comments through Disqus.

Previous: 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.
Next: Write a C++ program to create a new string from a given string. If the first or first two characters is 'a', return the string without those 'a' characters 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