1. 문제 상세
https://www.acmicpc.net/problem/27866
2. 문제 접근
문자열과 정수를 입력받아 문자열에서 입력받은 정수 값의 자리에 있는 문자를 출력하자.
■ String 클래스
C++ 에서는 C 의 char[], char* 과 다르게 문자열을 조금 더 편하게 사용이 가능하다.
바로 string 클래스를 사용하기 때문이다.
string 클래스는 문자열의 끝에 \0, null 문자가 포함되지 않는다.
그리고 배열 처럼 접근이 가능하기도 하고, 문자열을 합칠 때 + 로 바로 문자열을 합칠수도 있다.
이외에도 여러 멤버함수가 있어서 편리하게 활용이 가능하다.
문제로 돌아와서, string 객체를 생성하여 문자열을 입력받고 문자열의 한 문자에 접근하는 방법은 크게 두가지다.
먼저 배열처럼 접근하는 방법이다.
string s = "String" 인 경우 s[0] 라면 'S' 가 반환된다. 이 때, 반환되는 문자는 char 형식이다.
두 번째로 .at(index) 를 사용하는 것이다. s.ad(0) 이라면 'S' 가 반환된다. 이 때 반환되는 형식도 동일하게 char 형식.
이 외에도 활용 가능한 멤버함수.
.front() : 문자열의 첫 번째 문자를 반환
.back() : 문자열의 마지막 문자를 반환
.size() or .length() : 문자열의 길이를 반환
이번 문제에서는 배열처럼 접근하여 문자를 가져와보자.
입력받은 정수 i 는 배열에서 사용하기 위해 1을 빼준다.
string 객체에서 i - 1 번 인덱스의 값을 출력한다.
3. 문제 풀이
#include <iostream>
using namespace std;
int main() {
string s;
int i;
cin >> s;
cin >> i;
cout << s[i - 1];
}
string 객체 s 를 생성. 정수형 변수 i 를 선언한다.
cin 으로 문자열을 입력받아 s 에 저장하고 정수를 입력받아 i 에 저장한다.
cout 으로 s 문자열의 i - 1 번 인덱스의 값을 출력한다.
4. 성능 확인
5. 마무리
C++ 의 문자열 객체인 string 에 대해 간단히 알아보고 사용해 보았다.
'백준 - 단계별로 풀어보기 > 문자열' 카테고리의 다른 글
[백준] 10809번 : 알파벳 찾기 | C++ (0) | 2023.09.25 |
---|---|
[백준] 11720번 : 숫자의 합 | C++ (0) | 2023.09.25 |
[백준] 11654번 : 아스키 코드 | C++ (0) | 2023.09.22 |
[백준] 9086번 : 문자열 | C++ (0) | 2023.09.22 |
[백준] 2743번 : 단어 길이 재기 | C++ (0) | 2023.09.22 |