-
string컴퓨터 공학/C++ 2023. 3. 31. 00:16
https://www.acmicpc.net/problem/11005
11005번: 진법 변환 2
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를
www.acmicpc.net
백준 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