색인에서 색인까지의 C++ 하위 문자열

색인에서 색인까지의 C++ 하위 문자열

2022-06-04 last update

7 minutes reading C++
하위 문자열이나 하위 문자열 또는 범위는 문자열 문자열의 문자 서열의 일부분일 뿐입니다.프로그래머에게 C++의 하위 문자열만 알면 부족합니다.프로그래머는 코드를 통해 하위 문자열을 식별하는 방법을 알아야 한다.프로그래머는 하위 문자열을 되돌리는 방법을 알아야 한다.프로그래머는 하위 문자열을 삭제하는 방법을 알아야 합니다.프로그래머는 삭제 후에 하위 문자열을 바꾸는 방법을 알아야 합니다.
문자열은 두 가지 주요 방식으로 만들 수 있습니다: constchar* (문자 그룹) 또는string 클래스에서 실례화됩니다.문자열 클래스에서 실례화된 경우, 문자열 라이브러리는 C++ 프로그램에 포함되어야 합니다.C++에서 하위 문자열을 식별, 반환, 삭제, 교체하는 것은 일반적으로string 클래스에서 실례화된 string 대상만 사용합니다.
문자열 대상은 방법 (구성원 함수) 을 포함하는 데이터 구조입니다.그것의 목록은 요소로 구성되어 있으며, 그 중 모든 요소는 하나의 문자를 가지고 있다.목록 값은 문자입니다.배열과 마찬가지로 문자열 대상의 모든 문자는 색인을 통해 접근할 수 있다.따라서 하위 문자열은 인덱스를 통해 낮은 인덱스와 높은 인덱스를 식별할 수 있다.범위는 비교적 낮은 지수에서 비교적 높은 지수까지 비교적 높은 지수를 포함하지 않는다.범위에는 인덱스가 높은 문자가 포함되지 않습니다. 하위 문자열의 길이는 인덱스가 낮은 문자에서 인덱스가 높은 문자 이전의 문자입니다.
두 개의 교체기는 하위 문자열이나 범위를 표시할 수 있다. 첫 번째 교체기는 범위의 시작에 사용되고, 마지막 교체기는 문자에 사용된다. 이 문자는 실제 마지막 문자 뒤에 있다.교체기와 색인 사이에는 다음과 같은 간단한 관계가 있다.
본고는 하위 문자열이 무엇인지, 그리고 C++에서 하위 문자열을 식별, 반환, 삭제, 교체하는 방법을 설명한다.

문장 내용






  • 하위 문자열 식별 및 반환


    C++ 클래스는 substr () 라는 구성원 함수를 가지고 있으며, sub-string () 에 사용됩니다.구문은 다음과 같습니다.
    basic_string substr(size_type pos = 0, size_type n = npos) const
    이 함수는 하위 문자열을 문자열 대상으로 되돌려줍니다.첫 번째 매개 변수는 하위 문자열이 시작하는 색인 위치를 표시합니다.하위 문자열에pos 문자가 포함되어 있습니다.두 번째 매개 변수는 하위 문자열의 길이를 보여 줍니다.길이는pos에서 시작하는 문자수입니다. 인덱스가 높은 문자는 포함되지 않습니다.비교적 높은 지수는pos+NPO(길이지만 NPO 측정치가 왼쪽으로 이동한 위치)이다.색인 수는 0부터 시작합니다.다음 프로그램은 이 구성원 함수의 사용을 설명합니다.
    #include 
    
    #include 
    
    using namespace std;
    
    
    int main()
    
    {
    
    string str = "one_two_three_four_five";
    
    
    string substrin = str.substr(8, 5);
    
    
    cout <
    출력:
    three
    이 두 매개변수가 없으면 다음 프로그램과 같이 전체 문자열을 고려합니다.
    #include 
    
    #include 
    
    using namespace std;
    
    
    int main()
    
    {
    
    string str = "one_two_three_four_five";
    
    
    string substrin = str.substr();
    
    
    cout <
    출력:
    one_two_three_four_five
    문법 끝에 있는 보존자 const는substr () 함수가 하위 문자열을 복사해서 되돌려줍니다.하위 문자열은 삭제되지 않습니다.

    연결 교체기 및 인덱스


    교체기가 문자를 가리킬 때, 범위의 끝에 있는 교체기를 얻기 위해 간격의 문자 길이(수량)를 추가하면, 새로운 교체기는 범위의 끝에 가리킨다.마지막 교체기의 문자는 범위나 하위 문자열에 포함되지 않습니다.이 범위는 하위 문자열과 같습니다. (위와 같은 내용입니다.)substr () 문자열 구성원 함수에 대해 npos는 간격의 길이입니다.
    인덱스 0에 대응하는 교체기는 다음과 같습니다.
    str.begin()
    범위의 마지막 요소를 가리키기 위해 이 교체기에 NPO를 추가할 수 있습니다.범위의 마지막 요소나 마지막 문자는 하위 문자열의 일부분이 아닙니다.
    문자열의 마지막 문자 뒤에 있는 점에 대응하는 교체기는 다음과 같습니다.
    str.end()
    NPO는 문자열에 필요한 첫 번째 문자를 가리키기 위해 에서 뺄 수 있습니다.
    begin () 과end () 는string 클래스의 구성원 함수입니다.

    하위 문자열 삭제


    하위 문자열은substr () 함수를 가진 매개 변수,pos와 npo를 문자열 대상에 표시합니다.돌이켜보면 NPO는 하나의 간격이다.string 클래스에는 erase () 라는 구성원 함수가 있습니다.erase () 는 재부팅 형식으로 존재합니다.다시 불러온erase () 구성원 함수 중 하나는pos와 npos로 하위 문자열을 표시합니다.구문은 다음과 같습니다.
    basic_string& erase(size_type pos = 0, size_type n = npos)
    이 지우기 함수는 하위 문자열을 삭제하고 하위 문자열을 삭제하는 원시 문자열을 되돌려줍니다.
    따라서 하위 문자열을 삭제하려면substr () 함수가 필요하지 않습니다.필요한 것은 그것의 논점이다.하위 문자열을 삭제하려면string 대상의erase member 함수를 사용하십시오.하위 문자열의 복사본을 가져오려면 지우기 전에substr () 함수를 사용하십시오.다음 프로그램은 하위 문자열을 삭제하는 좋은 방법을 보여 줍니다.
    #include 
    
    #include 
    
    using namespace std;
    
    
    int main()
    
    {
    
    string str = "one_two_three_four_five";
    
    
    string substrin = str.substr(8, 5);
    
    string ret = str.erase(8, 5);
    
    
    cout <
    출력:
    three
    
    one_two__four_five
    
    one_two__four_five
    반복자 매개변수를 사용하여 하위 문자열을 삭제하는 구문은 다음과 같습니다.
    iterator erase(const_iterator first, const_iterator last)
    이렇게 하면 하위 문자열의 시작은 색인pos에 대응하는 교체기 표식으로 시작됩니다. 하위 문자열의 끝을 얻으려면, 교체기는last 표식으로 하고, 후자는first+npos를 실행하여 얻습니다.이 다시 불러온erase () 함수 변수를 사용하여 하위 문자열을 삭제하는 인코딩은 독자에게 연습으로 남겨 둡니다.

    하위 문자열 대체


    하위 문자열을 진정으로 표시하는 것은 매개 변수:pos와 npos입니다.하위 문자열을 되돌리려면 문자열 클래스 구성원 함수substr () 를 사용합니다.하위 문자열을 삭제하려면 문자열 클래스 구성원 함수erase () 를 사용합니다.하위 문자열을 임의의 길이의 하위 문자열로 바꾸려면 문자열 클래스 구성원 함수replace () 를 사용합니다.replace 함수에는 많은 중재 변체가 있습니다.색인 사용:
    basic_string& replace(size_type pos1, size_type n1, const T& t)
    그 중에서pos1은pos이고, n1은npos이며, t는 교체에 사용되는 독립 문자 그룹입니다.대체 문자열을 포함하여 원래 문자열을 반환합니다.
    참고: C++에서 하위 문자열은 교체되기 전에 삭제되지 않아야 합니다(삭제).
    다음 프로그램은 하위 문자열을 대체하는 좋은 방법을 보여 줍니다.
    #include 
    
    #include 
    
    using namespace std;
    
    
    int main()
    
    {
    
    string str = "one_two_three_four_five";
    
    
    char chs[] = "ccc";
    
    
    string substrin = str.substr(8, 5);
    
    string ret = str.replace(8, 5, chs);
    
    
    cout <
    출력:
    three
    
    one_two_ccc_four_five
    
    one_two_ccc_four_five
    상기 코드의 교체 길이는 5자보다 적다.다음 프로그램은 5자보다 큰 교체를 표시합니다.
    #include 
    
    #include 
    
    using namespace std;
    
    
    int main()
    
    {
    
    string str = "one_two_three_four_five";
    
    
    char chs[] = "cccccccc";
    
    
    string substrin = str.substr(8, 5);
    
    string ret = str.replace(8, 5, chs);
    
    
    cout <
    하위 문자열을 교체기 매개변수로 대체하는 구문은 다음과 같습니다.
    basic_string& replace(const_iterator i1, const_iterator i2, const T& t)
    이 문법을 사용하면 하위 문자열의 시작은 색인pos에 대응하는 교체기 i1 표지입니다. 하위 문자열의 끝을 얻으려면 교체기는 i2 표지입니다. 이것은 i1+npos를 통해 조작하여 얻을 수 있습니다.t는 상술한 의미와 같다.다음 프로그램에서는 이 구문을 사용하는 방법을 보여 줍니다.
    #include 
    
    #include 
    
    using namespace std;
    
    
    int main()
    
    {
    
    string str = "one_two_three_four_five";
    
    string::const_iterator itB = str.begin();
    
    string::const_iterator itPos = itB + 8;
    
    string::const_iterator itNpos = itPos + 5;
    
    
    char chs[] = "ccccc";
    
    
    string substrin = str.substr(8, 5);
    
    string ret = str.replace(itPos, itNpos, chs);
    
    
    cout <
    출력:
    three
    
    one_two_ccccc_four_five
    
    one_two_ccccc_four_five
    사용하는 교체기는 상량 교체기입니다.색인pos에 대응하는 교체기는 itB+8을 통해 얻을 수 있습니다.itPos+5를 사용하여 비교적 높은 인덱스에 대응하는 교체기를 얻습니다.

    결론


    하위 문자열이나 하위 문자열 또는 범위는 문자열 문자열의 문자 서열의 일부분일 뿐입니다.하위 문자열을 되돌리려면 문자열 클래스 구성원 함수substr () 를 사용합니다.하위 문자열을 삭제하려면 문자열 클래스 구성원 함수erase () 를 사용합니다.하위 문자열을 바꾸려면 문자열 클래스 구성원 함수replace () 를 사용합니다.이 모든 함수에 대해 인덱스 매개 변수pos와 인덱스 간격 npos는 주 문자열 서브문자열을 식별하는 관건이다.