안녕하세요 넬다이입니다.
오늘은 string에 대해서 배워보겠습니다.
프로그램을 하면은 문자열을 담아놓을 공간을 많이 쓰게 되는데 이를 담아두는 string 어렵지 않은 항목이니 다들 파이팅입니다.
string 컨테이너
일반적으로 문자열 처리를 할 때 신경을 써야 하는 부분이 많다.
문자열을 처리하기 위한 배열은 컴파일 타임에 이미 크기가 정해지기 때문에
배열의 크기를 벗어나는 문자열을 저장할 수 없다.
간단한 문자열 대입이라던가 비교라던가 하려고 해도 문자 열처리 함수를 반드시 사용해야 하는 불편함이 있다.
하지만 string 컨테이의 사용을 통해서 우리는 공간이 얼마나 남았는지
혹은 문자열 복사라던지, 비교, 더하기 등을 쉽게 처리할 수 있다.
#include <iostream>
//C++
#include <string>
// C
//#include <string.h>
void main(){
string strName = "NellDie";
cout << strName << endl;
}
위와 같이 string의 입력과 출력 부분이다 기존 배열을 이용해서 하는 것보다는 훨씬 심플하고 명료한 것을 알 수 있다.
#include <iostream>
//C++
#include <string>
// C
//#include <string.h>
void main(){
string strName = "NellDie";
cout << strName << endl;
cout << "strName 의 size : " << strName.size() << endl;
cout << "strName 의 length : " << strName.length() << endl;
}
이 내용을 보시면은 string 안에 size와 length와 같은 기능들이 있으며 이를 통해서 기존 배웠던 strlen 함수나 sizeof와 같은 함수를 통해서 기능을 실행한 반면 이는 string 안에 기능들이 구현되어있어서 쉽게 사용이 가능하며 기존처럼 특정 대상을 지정하는 게 아닌 string strName에 지정되어 있는 기능임을 볼 수 있는 것입니다.
* NULL 문자를 제외한 길이를 반환해 주는 함수이다. size()와 length() 함수는 동일한 함수인데 이름만 다른 것임.
string strName2 = "Test";
//문자열 결합 연산 가능
string strName3 = strName + strName2;
cout << strName3 << endl;
//문자열 비교 연산이 가능함.
cout << (strName == strName2) << endl;
//문자 검색..
cout << strName2.find("s") << endl;
위와 같은 형태로써 기존에 strcat , strcmp와 같은 기능 또한 string 안에 구현되어 있는데 간편하게 직관적으로 기능을 사용할 수 있음을 보여주고 있다.
string 컨테이너는 정리 과정 내내 사용할 일이 많지는 않다. 이후 과정에서도 속도를 위해서 잘 사용하지 않는다.
하지만 string라는 컨테이너는 그만큼 강력한 기능을 하는 컨테이너임에는 변함이 없다.
[개발/C&C++] - (C/C++ 속성 정리) 11일 차 : 문자열 및 문자열 함수
[개발/C&C++] - (C/C++ 속성 정리) 10일 차 : 포인터 심화 및 2차원 배열
[개발/C&C++] - (C/C++ 속성 정리) 9일 차 : 포인터와 배열
[개발/C&C++] - (C/C++ 속성 정리) 8일 차 : 포인터
'개발 > C&C++' 카테고리의 다른 글
(C/C++ 속성 정리) 16일 차 : 메모리 관련 함수 (0) | 2020.07.06 |
---|---|
(C/C++ 속성 정리) 15일 차 : 포인터와 동적할당 (0) | 2020.07.05 |
(C/C++ 속성 정리) 14일 차 : 함수의 사용방법 (0) | 2020.07.04 |
(C/C++ 속성 정리) 13일 차 : typedef , 구조체 (0) | 2020.07.03 |
(C/C++ 속성 정리) 11일 차 : 문자열 및 문자열 함수 (0) | 2020.07.01 |
(C/C++ 속성 정리) 10일 차 : 포인터 심화 및 2차원 배열 (0) | 2020.06.29 |
(C/C++ 속성 정리) 9일 차 : 포인터와 배열 (0) | 2020.06.28 |
(C/C++ 속성 정리) 8일 차 : 포인터 (0) | 2020.06.27 |