c++

string 클래스

케굴 2020. 4. 19. 02:48

c++ 에서 string은 표준 라이브러리에서 제공하는 클래스로 문자열을 객체로 다룬다.

 

스트링을 사용하기 위해 아래 코드가 필요하다.

#include <string>
using namespace std;

 

string 객체 생성 

string str; 
string name("kerryfrog");
string cName(name);    // name을 복사한 cName 문자열 생성

 

string  객체에 문자열 입력

string name;
cin >> name;   

cin을 이용하여 간단하게 string 값을 입력할 수 있으나 cin은 공백문자가 입력되면 그 앞 까지 하나의 문자열로 여긴다.

string name;
getline(cin,name,'\n'); // '\n'을 만날 때까지 cin으로부터 문자열을 읽어 name에 저장한다.

그래서 <string>헤더에 포함된 getline()함수를 이용한다. 

 

string의 배열

string str1 = "eat dinner";
cout <<  str1[0]<< str1[3] << str1[5] << endl; // 출력 e i

string 에서 stringname[n]을 이용하여 문자 하나하나에 접근 할 수 있다. 이는 string의 배열과 형태가 비슷하여 착각할 수 있다.

string str2[5];
str2[0] = "eat rice";
cout << "str2[0]:" << str2[0] << endl;  // 출력 : eat rice
cout << "str2[1]:"  << str2[1] << endl; // 출력:
cout << "str2[0][1]:" << str2[0][1] << endl; // 출력:a

출력

처음선언에서 string 배열으로 선언한다면, stringname[n] 은 n번째 스트링을 뜻하게 된다. 

배열의 문자에 접근하고 싶으면 stringname[n][m]을 이용하면 된다. n번째 배열의 m번째 문자를 뜻한다.