📜  C++中的子字符串

📅  最后修改于: 2021-05-26 01:59:36             🧑  作者: Mango

在C++中,std :: substr()是用于字符串处理的预定义函数。 字符串.h是字符串函数所需的头文件。

此函数将两个值poslen作为参数,并返回一个新构造的字符串对象,其值初始化为该对象的子字符串的副本。从pos开始复制字符串,直到pos + len表示[pos,pos + len)为止。

要点:

  1. 第一个字符的索引为0(不是1)。
  2. 如果pos等于字符串长度,则该函数返回一个空字符串。
  3. 如果pos大于字符串长度,则抛出out_of_range。如果发生这种情况,则字符串中没有任何变化。
  4. 如果对于所请求的子字符串len大于字符串的大小,则返回的子字符串为[pos,size())

句法:

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 
#include 
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;
}

输出:

String is: eek

应用范围:

  1. 如何获得一个字符后的子字符串?
    在这种情况下,将给出一个字符串和一个字符,您必须先打印子字符串,然后再打印给定字符。
    提取字符串“ dog:cat”中“:”之后的所有内容。
    // CPP program to illustrate substr()
    #include 
    #include 
    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;
    }
    

    输出:

    String is: cat
    
  2. 打印给定字符串的所有子字符串
  3. 代表数字的字符串的所有子字符串的总和
    想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。