>  기사  >  백엔드 개발  >  C++ 리뷰 포인트 요약 z-12 - STL 문자열

C++ 리뷰 포인트 요약 z-12 - STL 문자열

黄舟
黄舟원래의
2017-01-16 11:55:571337검색

1String 개념

² String은 STL의 문자열 유형으로 일반적으로 문자열을 나타내는 데 사용됩니다. 문자열을 사용하기 전에 문자열은 일반적으로 char*로 표시되었습니다. string과 char* 모두 문자열을 나타내는 데 사용할 수 있는데, 둘 사이의 차이점은 무엇인가요?

string과 char*의 비교

² String은 클래스이고 char*는 문자에 대한 포인터입니다.

string은 char*를 캡슐화하고 이 문자열을 char* 유형 컨테이너로 관리합니다.

² 문자열은 메모리 해제 및 범위 외를 고려할 필요가 없습니다.

string은 char*로 할당된 메모리를 관리합니다. 문자열이 복사될 때마다 값은 문자열 클래스에 의해 유지되므로 범위를 벗어난 값이나 범위를 벗어난 복사에 대해 걱정할 필요가 없습니다.

² string은 일련의 문자열 연산 기능을 제공합니다(이에 대해서는 나중에 자세히 설명합니다)

찾기, 복사, 삭제, 지우기, 바꾸기, 삽입

2string의 생성자

² 기본 생성자:

string() //빈 문자열 string s1을 생성합니다.

² 복사 생성자:

string(const string &str); //str과 동일한 문자열을 생성합니다. strings1(s2)과 같은 것입니다.

² 매개변수가 있는 생성자

string(const char *s); //문자열 s로 초기화

string(int n,char c) // 초기화 >

n 문자 c를 사용한 3개의 문자열 액세스 문자 연산

² 문자열 클래스 문자 연산:



const char &operator[] (int n) const;
const char &at(int n) const;
char &operator[] (int n);
char &at(int n);

² 연산자[] 및 at () 둘 ​​다 현재 문자열의 n번째 문자를 반환하지만 둘 사이에는 차이가 있습니다.


가장 큰 차이점은 at()이 범위를 벗어나면 예외가 발생하고, []는 범위를 벗어나면 (char)0을 반환하고, 계속 범위를 벗어나면 (char)0을 반환한다는 것입니다. 경계를 초과하면 컴파일러가 직접 오류를 발생시킵니다. 프로그램이 try and catch를 통해 예외를 포착하려는 경우 at()을 사용하는 것이 좋습니다.


4 문자열에서 const char*를 가져오는 작업

² const char *c_str() const;
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.