본문 바로가기
C 언어 공부

백준(27866) - 문자와 문자열[C 언어]

by 감쟈도리 2025. 1. 28.

오늘은 기본 개념을 살펴보기 위해 좀 간단한 문제를 들고 와봤다.

이 문제에서는 필요한 개념만 알면 매우 간단하게 슥슥 풀 수 있는 문제다.

우선 C 언어에서는 String이 없기 때문에 문자열을 말 그대로 문자의 배열로 받아온다.

그래서 입력의 첫줄을 문자열에 집어넣으면 자동으로 순서가 생기기 때문에 그냥 그 순서에 맞게 지정해주면 된다.

 

실제 코드로 보는 것이 더 이해가 쉬울 것 같아서 바로 정답으로 넘어가자.

#include <stdio.h>

int main(){
    int n;
    char s[1000];	// 문자열을 문자의 배열로 선언
    char word;
    
    scanf("%s", &s);	// 스캔할 때는 %s로 통으로 스캔해온다
    scanf("%d", &n);
    
    word = s[n-1];	// 주어진 순서의 배열을 가져와서 넣어준다
    printf("%c", word);
    
    return 0;
}

 

이렇게 코드를 보면 알 수 있듯이, 처음에 문자열을 선언할 때는 char 이름[길이] 형태로 지정해준다. 이것 말고 포인터를 이용해서 받아오는 방법도 있는데, 그건 좀 더 어려워서 다음에 다룰 예정이다.

그 후에 입력을 읽어서 문자열을 받아온 후, word 에 s[n-1]을 넣어준다.

여기서 n - 1번째를 넣은 이유는, 배열의 순서는 0부터 시작해서 실제 순서보다 1이 작기 때문이다.

 

오늘은 쉽지만 다음 단계를 풀기 위해서는 꼭 알아야하는 개념을 정리해보았다.

다른 문제들을 풀면서도 꼭 기억하기를 - !