백준 27886 - 문자와 문자열 / C++ 풀이과정

Been·2023년 11월 3일
0

백준

목록 보기
4/23

한 줄 요약 :

char타입의 문자열을 입력받고 포인터를 활용해 문자열의 위치를 표현한다.

풀이순서

1. char word[1001]; // 문자열 입력받기

*주의 : 문제에 나온 단어의 길이는 최대 1000이지만 문자열의 크기를 1001로 변경해준다. 
char 타입의 문자열은 문자열의 끝을 '\0'을 통해 인지한다.
따라서 배열의 크기를 (문자열의 길이 + 1)로 설정해준다.

2. int i; // 정수 i 입력 받기

배열의 몇번째 문자를 알고싶은지를 나타낸다.

3. char* ptr = word; // 문자열 word의 주소값 받기

포인터 변수를 활용해 문자열 변수 word의 메모리 주소값을 저장한다.
char* ptr = word;의 의미 : 
- 이름이 ptr인 포인터변수('*')를 선언한다.
- 이 변수는 word라는 다른 변수의 메모리 주소값을 가리키고있다.
- 변수 word는 char타입으로 표현되어있을 것이다. 
(실제로 word가 어떤 타입이든간에 포인터는 앞에 붙여진 타입대로 변수를 읽을 것이다.)

4. ptr[i-1]; // 알고싶은 문자 나타내기

문자열 word는 배열형태이므로 ptr[i-1] 형태를 통해 원하는 위치의 문자를 표현한다. 
이 때 [i-1]인 이유는 배열의 시작은 1이 아닌 0부터이기 때문이다.

<C++ code>

#include <iostream>
using namespace std;
int main()
{
    char word[1000];
    cin >> word;
    
    int i;
    cin >> i;

    char* ptr = word;
    cout << ptr[i-1] << endl;


}
profile
콧콧코코콧코콧ㅅ

0개의 댓글