C++string 문자열 의 수정 과 교체 방법 에 대한 상세 한 분석

문자열 내용 의 변 화 는 수정 과 교체 두 가 지 를 포함한다.이 절 은 문자열 내용 의 수정 과 문자열 내용 의 교 체 를 설명 할 것 입 니 다.
문자열 내용 수정
여러 함수 로 문자열 의 값 을 수정 할 수 있 습 니 다.예 를 들 어 assign(),operator=,erase(),교환(swap),삽입(insert)등 이다.또한 append()함수 로 문 자 를 추가 할 수 있 습 니 다.
다음은 각 구성원 함수 의 사용 방법 을 하나씩 소개 한다.
assign()함수
assign()함 수 를 사용 하면 문자열 에 직접 값 을 부여 할 수 있 습 니 다.이 함 수 는 전체 문자열 을 새 문자열 에 할당 할 수도 있 고 문자열 의 하위 문자열 을 새 문자열 에 할당 할 수도 있 습 니 다.그 는 basicstring 의 원형 은:

basic_string& assign (const E*s); //         
basic_string& assign (const E*s, size_type n);
basic_string& assign (const basic_string & str, size_type pos, size_type n);
// str         
basic_string& assign (const basic_string& str); //      “  ”x 
basic_string& assign (size_type n, E c) ; //   n     x 
basic_string& assign (const_iterator first, const_iterator last); //       
상기 몇 가지 방법 은 예 1 에서 모두 나타난다.독자 들 은 아래 의 코드 를 참고 하 시기 바 랍 니 다.
[예 1]

#include <iostream>
#include <string>
using namespace std;
int main()
{
 string str1 ("123456");
 string str;
 str.assign (str1); //    
 cout << str << endl;
 str.assign (str1, 3, 3); //     
 cout << str << endl;
 str.assign (str1,2,str1.npos);//       2       
 cout << str << endl;
 str.assign (5,'X'); //   5  'X'  
 cout << str << endl;
 string::iterator itB;
 string::iterator itE;
 itB = str1.begin ();
 itE = str1.end();
 str.assign (itB, (--itE)); //   1       2    ,       str
 cout << str << endl;
 return 0;
}
연산 자=함수
operator=의 기능 은 바로 할당 입 니 다.
erase()함수
erase()함수 의 원형 은:

 iterator erase (iterator first, iterator last);
 iterator erase (iterator it);
 basic_string& erase (size_type p0 = 0, size_type n = npos);
erase()함수 의 사용 방법 은:

str.erase (str* begin(), str.end());
   str.erase (3);
swap()함수
swap()함수 의 원형 은:

void swap (basic_string& str);
swap()함수 의 사용 방법 은:

string str2 ("abcdefghijklmn");
str.swap (str2);
insert()함수
insert()함수 의 원형 은:

basic_string& insert (size_type p0 , const E * s); //   1         s   
basic_string& insert (size_type p0 , const E * s, size_type n); //   s    3      p0   
basic_string& insert (size_type p0, const basic_string& str);
basic_string& insert (size_type p0, const basic_string& str,size_type pos, size_type n); //   str    
basic_string& insert (size_type p0, size_type n, E c); //    p0      n     c
iterator insert (iterator it, E c); //  it        c
void insert (iterator it, const_iterator first, const_iterator last); //         
void insert (iterator it, size_type n, E c) ; //  it        n     c
insert()함수 의 사용 방법 은:

 string A("ello");
 string B ;
 B.insert(1,A);
 cout << B << endl;
 A = "ello";
 B = "H";
 B.insert (1,"yanchy ",3);
 cout<< B <<endl;
 A = "ello";
 B = "H";
 B.insert (1,A,2,2);
 cout << B << endl;
 A="ello";
 B.insert (1 , 5 , 'C');
 cout << B << endl;
 A = "ello";
 string::iterator it = B.begin () +1;
 const string:: iterator itF = A.begin();
 const string:: iterator itG = A.end();
 B.insert(it,itF,itG);
 cout << B << endl;
append 함수
append()함수 의 원형 은:

 basic_string& append (const E * s); //             s
 basic_string& append (const E * s, size_type n);//              s    n    
 basic_string& append (const basic_string& str, size_type pos,size_type n);//              s     s [ pos,…,pos +n -1]
 basic_string& append (const basic_string& str);
 basic_string& append (size_type n, E c); //   n      
 basic_string& append (const_iterator first, const_iterator last); //       
 
 append()         :
 A = "ello";
 cout << A << endl;
 cout << B << endl;
 B.append(A);
 cout << B << endl;
 A = "ello";
 cout << A << endl;
 cout << B << endl;
 B.append("12345",2);
 cout << B << endl;
 A = "ello";
 cout << A << endl;
 cout << B << endl;
 B.append("12345",2,3);
 cout << B << endl;
 A = "ello";
 B = "H";
 cout << A << endl;
 cout << B << endl;
 B.append (10, 'a');
 cout << B << endl;
 A = "ello";
 B = 'H';
 cout << A << endl ;
 cout << B << endl;
 B.append(A.begin(), A, end());
 cout << B << endl;
다음은 완전한 예 를 통 해 이 함수 들 의 사용 을 소개 합 니 다.

#include <iostream>
#include <string>
using namespace std;
int main ()
{
 string str1 ("123456");
 string str2 ("abcdefghijklmn");
 string str;
 str.assign(str1);
 cout << str << endl;
 str.assign (str1 , 3, 3);
 cout << str << endl;
 str.assign (str1, 2, str1.npos);
 cout << str << endl;
 str.assign (5, 'X');
 cout << str << endl;
 string::iterator itB;
 string::iterator itE;
 itB = str1.begin ();
 itE = str1.end();
 str.assign (itB, (--itE));
 cout << str << endl;
 str = str1;
 cout << str << endl;
 str.erase(3);
 cout << str << endl;
 str.erase (str.begin (), str.end());
 cout << ":" << str << ":" << endl;
 str.swap(str2);
 cout << str << endl;
 string A ("ello");
 string B ("H");
 B.insert (1, A);
 cout << B << endl;
 A = "ello";
 B ='H';
 B.insert (1, "yanchy ", 3);
 cout << "  : " << B << endl;
 A = "ello";
 B = "H";
 B.insert(1,A,2,2);
 cout << "  :" << B << endl;
 A = "ello";
 B = "H";
 B.insert (1,5,'C');
 cout << "  :" << B << endl;
 A = "ello";
 B = "H";
 string::iterator it = B.begin () +1;
 const string::iterator itF = A.begin ();
 const string::iterator itG = A.end ();
 B.insert(it,itF,itG);
 cout<<"  :"<< B << endl;
 A = "ello";
 B = "H";
 cout << "A = " << A <<", B = " << B << endl ;
 B.append (A);
 cout << "  :" << B << endl;
 B = "H";
 cout << "A = "<< A << ", B= " << B << endl;
 B.append("12345", 2);
 cout << "  :" << B << endl;
 A = "ello";
 B = "H";
 cout << "A = " << A << ", B= " << B << endl;
 B.append ("12345", 2, 3);
 cout << "  :" << B << endl;
 A = "ello";
 B = "H";
 cout << "A = " << A <<", B = " << B << endl;
 B.append (10 , 'a');
 cout << "  :"<< B << endl;
 A = "ello";
 B = "H";
 cout << "A = " << A << ", B = " << B << endl;
 B.append(A.begin() , A.end());
 cout << "  :" << B << endl;
 cin.get();
 return 0;
}
프로그램 실행 결과:
123456
456
3456
XXXXX
12345
123456
123
::
abcdefghijklmn
Hello
삽입:Hyan
삽입:Hlo
삽입:HCCCCC
삽입:Hello
A = ello, B = H
추가:안녕하세요
A = ello, B= H
추가:H12
A = ello, B= H
추가:H345
A = ello, B = H
추가:하야 아아 아
A = ello, B = H
추가:안녕하세요
문자열 내용 변경
한 문자열 에 구체 적 인 위 치 를 표시 하면 아래 표 시 를 통 해 지정 한 위치 문자 의 값 을 수정 하거나 키 문자열 을 교체 할 수 있 습 니 다.이 작업 을 완료 하려 면 string 류 의 구성원 함수 replace()를 사용 해 야 합 니 다.

replace()        :
basic_string& replace (size_type p0, size_type n0, const E * s); //      s    n    ,       P0      
basic_string& replace (size_type p0, size_type n0, const E *s, size_type n); //      s    n    ,       P0       1    
basic_string& replace (size_type p0, size_type n0, const basic_string& str); //      s    n    ,       P0      
basic_string& replace (size_type p0, size_type n0, const basic_string& str, size_type pos, size_type n); //    str     str [pos, pos + n-1]         ,    p0      ,     n0  
basic_string& replace (size_type p0, size_type n0, size_type n, E c); //   n     'c'         p0      n0    
basic_string& replace (iterator first0, iterator last0, const E * s);//       ,  1)     
basic_string& replace (iterator first0, iterator last0, const E * s, size_type n);//  2)   
basic_string& replace (iterator first0, iterator last0, const basic_string& str); //  3)   
basic_string& replace (iterator first0, iterator last0, size_type n, E c); //  5)   
basic_string& replace (iterator first0, iterator last0, const_iterator first, const_iterator last); //       
이 함수 의 사용 방법 은 아래 의 프로그램 을 참조 합 니 다.

#include <iostream>
#include <string>
using namespace std;
int main ()
{
  string var ("abcdefghijklmn");
  const string dest ("1234");
  string dest2 ("567891234");
  var.replace (3,3, dest);
  cout << "1: " << var << endl;
  var = "abcdefghijklmn";
  var.replace (3,1, dest.c_str(), 1, 3);
  cout << "2: " << var << endl;
  var ="abcdefghijklmn";
  var.replace (3, 1, 5, 'x');
  cout << "3: " << var << endl;
  string::iterator itA, itB;
  string::iterator itC, itD;
  itA = var.begin();
  itB = var.end();
  var = "abcdefghijklmn";
  var.replace (itA, itB, dest);
  cout << "4: " << var << endl;
  itA = var.begin ();
  itB = var.end();
  itC = dest2.begin () +1;
  itD = dest2.end ();
  var = "abodefghijklmn";
  var.replace (itA, itB, itC, itD);
  cout << "5: " << var << endl;
  var = "abcdefghijklmn";
  var.replace (3, 1, dest.c_str(), 4); //                 
  cout <<"6: " << var << endl;
  return 0;
}
프로그램 실행 결 과 는:
    1: abc1234ghijklmn
    2: abc234efghijklmn
    3: abcxxxxxefghijklmn
    4: 1234
    5: 67891234efghijklmn
    6: abc1234efghijklmn
이 절 은 문자열 내용 의 수정 과 교 체 를 할 수 있 는 많은 함수 와 그 사용 방법 을 설명 하고 예 제 를 제시 했다.모든 함수 에 여러 개의 원형 이 있 을 수 있 기 때문에 독자 가 자신의 상황 에 따라 그 중의 하나 또는 두 가 지 를 파악 하여 자신 이 사용 하 는 수 요 를 만족 시 키 기 를 바란다.또한 독자 들 이 예제 의 집행 효 과 를 대조 하여 본 장의 소스 코드 를 열심히 읽 고 본 절의 내용 을 철저히 파악 하 기 를 바란다.
C++string 문자열 의 수정 과 교체 방법 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 C++string 문자열 의 수정 과 교체 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 지원 을 바 랍 니 다!

좋은 웹페이지 즐겨찾기