티스토리 뷰


size(), length(), c_str()

  • size(), length()
    • 문자열의 길이를 반환
    • size()를 더 많이 사용함
string firstName = ANGL;

cout << firstName.size() << endl;
cout << firstName.length() << endl;
  • c_str()
    • const char*
    • 해당 string이 가지고 있는 문자 배열의 시작 주소를 가리키는 포인터를 반환
    • 굳이 이렇게 쓰는 이유는 C++는 C와 함께 작동한다. 그런데 C함수들은 옛날 방식의 string을 받기 때문에 string 클래스를 받을 순 없고 C 스타일의 배열로된 string을 써야되기 때문.
    • 대부분 운영체제의 함수들도 C기반으로 짜여있기 때문에 char*를 요청하기 때문에 이런 함수를 사용한다.
string line;
cin >> line;
const char* cLine = line.c_str();

 

string 속의 한 문자에 접근하기

at()

  • at()
    • 해당 문자열에서 주어진 위치에 있는 문자를 참조로 반환
    • 굳이 쓸 필요가 없기 때문에 생각보다 많이 안씀.
// ANGL로 바꾸고 싶을 때
string firstName = ANgL;

char letter = firstName.at(1);
firstName.at(2) = 'G';

 

한 줄 읽기

getline()

string mailHeader;

// '\n' 문자를 만날 때까지 cin에서 문자들을 꺼내서
// mailHeader에 저장
getline(cin, mailHeader);

// '@' 문자를 만날 때까지 cin에서 문자들을 꺼내서
// mailHeader에 저장
getline(cin, mailHeader, '@');
  • 다음의 조건을 만족할 때까지 계속해서 스트림에서 문자들을 꺼내 string에 저장
    • end-of-file을 만날 때 (eofbit 값이 true가 됨)
    • 구분 문자(delimiter)를 만날 때까지 (구분 문자는 버려짐)

댓글