C++ 문자열 마지막 문자 삭제

C++ 문자열 마지막 문자 삭제

2022-06-04 last update

5 minutes reading C++
C++ 문자열 클래스에는 많은 구성원 함수가 있습니다.그 중 두 개는 pop\u back () 과 erase () 함수입니다.함수의 역할은 문자열에서 마지막 요소를 삭제하는 것입니다.함수의 역할은 문자열의 임의의 위치에 있는 요소를 지우는 것이다.지우기 기능에는 세 가지 변체가 있다.그들이 가지고 있는 논점의 종류는 다르다.이런 동명 함수를 다시 불러오는 함수라고 부른다.
C++ 문자열은 두 가지 주요 방식으로 설명할 수 있습니다.chars (chars 그룹) 를 가리키는 상수 바늘이나 문자열 라이브러리에서의string 클래스 실례화입니다.여기,pop\uback()과erase() 함수는string류에서 실례화된string 대상입니다.문자 그룹이 실례화된 대상이 아니기 때문에 문자 그룹의 마지막 요소를 삭제할 수 없습니다.
문자열 문자는 문자 값으로 구성되어 있습니다.각 문자는 하나의 요소에 있습니다.그래서 문자열 문자는 실제로 요소로 구성된다.마지막 문자는 마지막 요소와 함께 삭제됩니다.
본고는 문자열의 마지막 요소와 문자를 어떻게 삭제하는지 설명한다.

문장 내용






  • void pop\u back()


    string 클래스의 이 구성원 함수는 문자열의 마지막 요소를 삭제합니다.함수가void를 되돌려줍니다.이것은 그 안에서 어떤 내용도 되돌아오지 않을 뿐만 아니라, 그 안에서 되돌아오는 어떤 변수도 받아들일 수 없다는 것을 의미한다.이 기능의 사용은 다음과 같습니다.
    #include 
    
    #include 
    
    using namespace std;
    
    
    int main()
    
    {
    
    string str = "LMNOPQR";
    
    
    cout <
    출력:
    LMNOPQR
    
    LMNOPQ
    마지막 문자가 삭제되었습니다.프로그램의 앞 두 줄에는 필요한 라이브러리가 포함되어 있다.물론 그 중 하나는 문자열 라이브러리다.모든 관련된 문자열은 문자열 클래스에서 실례화되기 때문에 문자열 라이브러리를 포함해야 합니다.다음 줄은 한 문장이다.그것은 다른 설명이 없는 한 아래의 모든 명칭이 표준 명칭 공간이라고 성명한다.
    main () 함수체는 문자열 대상의 성명 (실례화) 으로 시작됩니다.다음 문장은 출력에 이 새 문자열의 텍스트를 표시합니다.다음 문장은 pop\uback () 구성원 함수를 사용하여 마지막 문자를 삭제합니다.다음 코드 세그먼트는 인덱스가 있는 for 순환을 사용하여 모든 문자를 연속 시퀀스로 표시합니다. 이 문자들은 마지막 문자가 없습니다.

    교체기 지우기 (상량 교체기 p)


    교체기가 마지막 요소 (문자) 를 가리키면 구성원 함수를 지우면 마지막 요소를 삭제할 수 있습니다.이 함수는 삭제된 원소 이후의 원소를 가리키는 교체기를 되돌려줍니다. 삭제된 원소가 마지막 원소라면 마지막 원소 이후의 원소를 가리킵니다.다음 절차에 대해 설명합니다.
    #include 
    
    #include 
    
    using namespace std;
    
    
    int main()
    
    {
    
    string str = "LMNOPQR";
    
    
    cout <
    출력:
    LMNOPQR
    
    LMNOPQ
    프로그램의 앞 세 줄의 해석 방식은 이전 프로그램과 같다.main () 함수체에서 첫 번째 문장은string 대상을 설명합니다.다음 문장은 출력에 이 새 문자열의 텍스트를 표시합니다.이 인쇄는 여전히 for 순환을 사용하여 완성할 수 있습니다.after 문장은 마지막 문자 요소를 가리키는 교체기를 얻었습니다.이것은 구성원 함수 end () 를 통해 완성되었습니다.교체기의 성명 방식 (,=) 의 왼쪽에 주의하십시오.그리고 마지막 원소를 가리키기 위해 교체기가 점차 줄어든다.
    다음에erase () 구성원 함수를 사용하여 마지막 요소를 삭제합니다.다음 코드 세그먼트는 인덱스가 있는 for 순환을 사용하여 모든 문자를 표시합니다. 이 문자들은 터미널에 마지막 문자를 연속된 시퀀스로 표시하지 않습니다.

    교체기 지우기 (const\uiterator first,const\uiterator last)


    이 구성원 함수는 문자열에서 일련의 문자 요소를 삭제합니다.여기,first는 범위의 첫 번째 요소를 가리키는 교체기입니다.교체기는 범위 뒤에 이 원소를 가리키는 점을 되돌려줍니다.요소가 없으면 문자열의 끝을 가리킵니다.마지막은 범위를 가리키는 마지막 요소의 교체기입니다.마지막 요소는 지우기에 참여하지 않습니다.
    마지막 요소를 삭제하려면 비결은 "last"가 문자열의 마지막 요소 밖을 가리키는 것이다.문자열의 마지막 요소에 첫 번째 점을 생성합니다.이 모든 것이 지워지면 마지막 요소가 삭제됩니다.다음 프로그램에서는 이 작업을 수행하는 방법을 보여 줍니다.
    #include 
    
    #include 
    
    using namespace std;
    
    
    int main()
    
    {
    
    string str = "LMNOPQR";
    
    cout <= str.begin(); it--)
    
    cout << *it;
    
    cout <
    출력:
    LMNOPQR
    
    QPONML
    문자 R (및 요소) 을 삭제하면 나머지 문자열은 문자별로 인쇄되지만 순서는 반대입니다.
    프로그램의 앞 세 줄의 해석 방식은 이전 프로그램과 같다.main () 함수체에서 첫 번째 문장은string 대상을 설명합니다.다음 문장은 새 성명의 문자열을 출력합니다.
    아래의 코드 세그먼트에는 세 개의 문장이 있다.첫 번째는 문자열의 첫 번째 문자를 가리키는 교체기를 설명합니다.마지막 문자 "R"에 도달하기 전에 문자열의 여섯 글자를 계산해야 합니다.따라서 이 단락의 두 번째 문장은 교체기에 6을 추가했다.이 단락의 다음 문장은 문자열의 끝에 있는 교체기 q를 설명합니다.현재 마지막 요소를 지우는 상황을 설정합니다. q점은 "R"다음에 있고, p점은 "R"에 있습니다.
    "R"삭제 문구는 다음과 같습니다.
    string::iterator it = str.erase(p, q);
    "R"을 지우면 마지막 문자가 "Q"로 바뀝니다.반환된 교체기'it'는'Q'뒤에 있습니다.
    다음 코드 세그먼트는 for 순환입니다.이 for 순환의 초기화 문장은 간단하게'it'를 줄여 새로운 마지막 문자인'Q'를 가리킨다Q'가 터미널에 인쇄됩니다.for 순환은 계속'it'를 줄이고 해당하는 문자를 인쇄합니다.'it'는str.begin () 보다 큽니다.'it'가 str.begin () 과 같을 때,'it'는'L'을 가리키고, for 순환은'L'을 인쇄하고 정지합니다.이렇게 하면 "R"이 없는 문자열은 반대 순서로 인쇄됩니다.
    교체기를 가리키는 값을 가져오려면 교체기 앞에 간접 연산자를 추가하십시오*.

    기본 문자열 지우기 (&E) (size\u type pos=0, size\u type n=npos)


    이 구성원 함수는 위의 함수와 같은 범위를 삭제합니다.그러나 교체기가 아닌 색인을 사용합니다.매개 변수pos가 0이면 범위는 첫 번째 요소부터 시작합니다.매개변수 n이 문자열의 길이(문자 수)이면 범위는 마지막 문자로 끝납니다.이 두 매개변수 모두 기본값이 있습니다.이 함수는 문자열 클래스 대상을 되돌려주고 범위 내의 문자를 삭제합니다.
    이곳의 기교는pos의 값을 마지막 문자로 하는 색인입니다.마지막 문자(요소)의 인덱스는 목록의 크기(길이)에서 1을 뺀 것입니다.이 문제에 대해 이곳의 두 번째 매개 변수는 생략해야 한다.마지막 색인은 다음과 같습니다.
    str.size() - 1
    다음 프로그램에서는 이 구성원 함수를 사용하여 문자열에서 마지막 문자 "R"을 제거합니다.
    #include 
    
    #include 
    
    using namespace std;
    
    
    int main()
    
    {
    
    string str = "LMNOPQR";
    
    cout <
    출력:
    LMNOPQR
    
    LMNOPQ
    
    LMNOPQ
    원래 문자열과 반환된 문자열이 모두 "R"을 잃어버렸습니다.프로그램의 앞 세 줄의 해석 방식은 이전 프로그램과 같다.main () 함수체에서 첫 번째 문장은string 대상을 설명합니다.다음 문장은 새 성명의 문자열을 출력합니다.
    다음 문장은 원본 문자열의 마지막 요소의 인덱스를 결정합니다.다음 문장은 이 인덱스를 사용하여 마지막 문자를 지웁니다.다음 코드 세그먼트는 색인을 사용하여 문자열을 되돌려 주는 문자를 하나씩 출력합니다.마지막 코드 세그먼트는 색인을 사용하여 원본 문자열의 문자를 하나씩 출력합니다.

    결론


    일반적인 문자열 클래스 구성원 함수는pop\uback() 함수로 문자열의 마지막 문자와 그 요소를 삭제하는 데 사용됩니다.세 개의erase () 구성원 함수도 여기에 사용할 수 있습니다.그 중 하나는 마지막 문자를 가리키고 마지막 문자를 삭제하는 교체기가 필요합니다.다른 추출 범위는 두 개의 교체기로 표시됩니다. 한 교체기는 마지막 문자를 가리키고, 다른 하나는 마지막 문자의 뒤를 따른다.이렇게 하면 마지막 문자가 삭제됩니다.세 번째 재부팅 함수는 마지막 문자의 인덱스를 사용하여 삭제합니다.본 논문의 모든 토론은 C++20과 호환됩니다.