-
string컴퓨터 공학/C++ 2023. 3. 31. 00:16
https://www.acmicpc.net/problem/11005
백준 11005번을 푸는데, char 배열의 한계를 느꼈다. 처음에 배열을 생성하고 문제를 풀려 했는데 당최 배열의 끝을 얼마로 지정해야 하는지 모르겠는 것이었다. 또, 얼마를 할당해야 하는지를 알 수는 있으나 그걸 알기 위해 반복문을 하나 더 써야해 비효율적이라는 생각이 들었다. 그래서 자동으로 동적할당을 해주는 문자열이 뭐가 있을까 찾아보니 C++에는 string이 있었다. 거의 써본 적이 없기에 한 번 정리해보려 한다.
< 특징 >
1. 문자열의 끝에 '\0'이 들어가지 않는다.
2. 문자열의 길이를 동적으로 변경 가능하다.
< 입•출력 >
string str; // 문자열 생성
1. cin >> str; // 공백 이전까지의 문자열을 입력 받음
2. getline(cin, str); // 개행 이전까지의 문자열, 즉 한 줄을 통째로 입력 받음
3. getline(cin, str, 'a'); // 'a' 이전까지의 문자열을 입력 받음
4. cout << str; // 문자열 출력
< 활용 >
1. string str2(str1); // str1을 복사한 str2를 생성
2. char str3[] = { 'a', 'b', 'c' };
3. string str(str3) // C 스타일의 문자열과 호환 가능
4. 비교 연산자(<, >, ==)를 이용하여 사전 순서를 비교 가능
5. '+'를 이용하여 문자열 연결 가능
이 정도만 알아도 충분할 듯 하다. 어차피 코테 볼 때 추가적인 함수들을 다 기억하지는 못할테니 기본적인 것만 알아두고 필요하면 더 배우도록 하자.
'컴퓨터 공학 > C++' 카테고리의 다른 글
set (0) 2023.04.18 endl과 \n 차이 (0) 2023.04.03 binary_search() (0) 2023.03.29 배열의 동적 할당 (0) 2023.03.22 배열의 길이 (0) 2023.03.10