📜  C++字符串类及其应用程序套装2

📅  最后修改于: 2021-05-25 19:32:37             🧑  作者: Mango

我们在下面的集合1中讨论了String类及其一些功能。

C++字符串类及其应用|套装1

本文讨论了更多功能

字符串与字符数组
在C++中,除了字符数组外,还有一种类似的方式来实现字符串,即使用字符串类,它是C++标准库的一部分。要使用字符串类实现字符串,我们需要添加头文件。字符数组和字符串之间的基本区别是,在字符数组的情况下,必须在声明时分配大小,即分配后的所有内存都是固定的,不能在运行时更改。而对于字符串,则无需在声明时指定大小和分配固定内存。

// C++ program to demonstrate Character Array
// and String
#include
#include// for string class
using namespace std;
int main()
{
    // Size has to be predefined in character array
    char str[80] = "GeeksforGeeks";
  
    // Size not predefined in string
    string s("GeeksforGeeks");
  
    // Printing character array and string
    cout << str << endl;
    cout << s << endl;
  
    return 0;
}

输出:

GeeksforGeeks
GeeksforGeeks

一些有用的字符串函数

  • compare(string_to_compare) :-用于比较两个字符串。它以整数形式返回第二个字符串和第一个字符串的差。
    // C++ program to demonstrate use of compare()
    #include
    #include
    using namespace std;
    int main()
    {
        string str("GeeksforGeeks");
        string str1("GeeksforGeeks");
      
        // Comparing strings using compare()
        if ( str.compare(str1) == 0 )
            cout << "Strings are equal";
        else 
            cout << "Strings are unequal";
        return 0;
    }
    

    输出 :

    Strings are equal
  • find(“字符串”):在字符串搜索在参数中指定的子字符串的第一次出现。它返回第一次出现的子字符串的位置。
  • find_first_of(“字符串”):搜索的字符串匹配的任何在它的参数中指定的字符的第一个字符。它返回匹配的第一个字符的位置。
  • find_last_of(“字符串”):搜索的字符串匹配任何在它的参数中指定的字符的最后一个字符。它返回匹配的最后一个字符的位置。
  • rfind(“字符串”):在字符串搜索参数中指定的子字符串的最后一次出现。它返回最后一次出现的子字符串的位置
    // C++ program to demonstrate working of find(),
    // rfind(),find_first_of() and find_last_of()
    #include
    #include
    using namespace std;
    int main()
    {
        string str("The Geeks for Geeks");
      
        // find() returns position to first
        // occurrence of substring "Geeks"
        // Prints 4
        cout << "First occurrence of \"Geeks\" starts from : ";
        cout << str.find("Geeks") << endl;
      
        // Prints position of first occurrence of
        // any character of "reef" (Prints 2)
        cout << "First occurrence of character from \"reef\" is at : ";
        cout << str.find_first_of("reef") << endl;
      
        // Prints position of last occurrence of
        // any character of "reef" (Prints 16)
        cout << "Last occurrence of character from \"reef\" is at : ";
        cout << str.find_last_of("reef") << endl;
      
        // rfind() returns position to last
        // occurrence of substring "Geeks"
        // Prints 14
        cout << "Last occurrence of \"Geeks\" starts from : ";
        cout << str.rfind("Geeks") << endl;
      
        return 0;
      
    }
    

    输出:

    First occurrence of "Geeks" starts from : 4
    First occurrence of character from "reef" is at : 2
    Last occurrence of character from "reef" is at : 16
    Last occurrence of "Geeks" starts from : 14
    
  • insert(pos_to_begin,string_to_insert):此函数将给定的子字符串插入字符串。它有两个参数,第一个是您要从中插入子字符串的位置,第二个是子字符串。
    // C++ program to demonstrate working of insert()
    #include
    #include
    using namespace std;
    int main()
    {
        string str("Geeksfor");
      
        // Printing the original string
        cout << str << endl;
      
        // Inserting "Geeks" at 8th index position
        str.insert(8,"Geeks");
      
        // Printing the modified string
        // Prints "GeeksforGeeks"
        cout << str << endl;
      
        return 0;
    }
    

    输出:

    Geeksfor
    GeeksforGeeks
    
  • clear():此函数清除字符串的所有字符。此操作后,字符串变为空(长度变为0)。
  • empty():测试字符串是否为空。该函数返回一个布尔值。
    // C++ program to demonstrate working of clear()
    // and empty()
    #include
    #include
    using namespace std;
    int main()
    {
        string str("GeeksforGeeks");
      
        // clearing string
        str.clear();
      
        // Checking if string is empty
        (str.empty()==1)?
             cout << "String is empty" << endl:
             cout << "String is not empty" << endl;
      
        return 0;
      
    }
    

    输出:

    String is empty
    
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”