Tutorialspoint.dev

Substring in C++

In C++, std::substr() is a predefined function used for string handling. string.h is the header file required for string functions.

This function takes two values pos and len as an argument and returns a newly constructed string object with its value initialized to a copy of a sub-string of this object. Copying of string start from pos and done till pos+len means [pos, pos+len).

Important points:

  1. The index of the first character is 0 (not 1).
  2. If pos is equal to the string length, the function returns an empty string.
  3. If pos is greater than the string length, it throws out_of_range. If this happen, there are no changes in the string.
  4. If for the requested sub-string len is greater than size of string, then returned sub-string is [pos, size()).

Syntax:

string substr (size_t pos, size_t len) const;
Parameters:
pos: Position of the first character to be copied.
len: Length of the sub-string.
size_t: It is an unsigned integral type.

Return value: It returns a string object.
// CPP program to illustrate substr()
#include <string.h>
#include <iostream>
using namespace std;
  
int main()
{
    // Take any string
    string s1 = "Geeks";
  
    // Copy three characters of s1 (starting 
    // from position 1)
    string r = s1.substr(1, 3);
  
    // prints the result
    cout << "String is: " << r;
  
    return 0;
}

Output:



String is: eek

Applications :

  1. How to get sub-string after a character?
    In this a string and a character is given and you have to print the sub-string followed by the given character.
    Extract everything after the “:” in the string “dog:cat”.

    // CPP program to illustrate substr()
    #include <string.h>
    #include <iostream>
    using namespace std;
      
    int main()
    {
        // Take any string
        string s = "dog:cat";
      
        // Find position of ':' using find()
        int pos = s.find(":");
      
        // Copy substring after pos
        string sub = s.substr(pos + 1);
      
        // prints the result
        cout << "String is: " << sub;
      
        return 0;
    }

    Output:

    String is: cat
    
  2. Print all substrings of a given string
  3. Sum of all substrings of a string representing a number
  4. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



This article is attributed to GeeksforGeeks.org

leave a comment

code

0 Comments

load comments

Subscribe to Our Newsletter