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) // 초기화 >
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()을 사용하는 것이 좋습니다.