inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

배열과 문자열

배열과 문자열

해결된 질문

171

ghkd1118

작성한 질문수 9

0

10:11초 정도질문입니다.

[]대괄호안에 숫자가 들어가면, 문자배열의 공간수로 이해하였는데, 공란은 무슨의미인가요?

공란이있거나 숫자가 았거나 똑같이 풀이가되어 헷갈립니다.

그리고 %s 변수는 널값 ‘\0’ 이 나올때까지 문자 배열대로 쭉 출력하여야 하는데, 이게 항상 생략되는건가요? 생략되는 경우가 따로있나요?

python java c 정보처리기사

답변 1

0

주말코딩

안녕하세요,

 

  1. 공란 []의 경우에는 뒤에 들어오는 변수에 딱 맞춰서 알아서 변동되는 크기를 가집니다. 이 경우에 몇 개의 문자를 넣어도 그것에 맞춰서 배열 공간을 잡아줍니다.

#include <stdio.h>

void printArray(int arr[], int size) {
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

int main() {
    int numbers[] = {1, 2, 3, 4, 5};  // 배열 크기는 자동으로 계산됨 (5개 요소)
    int size = sizeof(numbers) / sizeof(numbers[0]);  // 배열의 크기 계산

    printArray(numbers, size);  // 배열과 크기를 함수로 넘김

    return 0;
}

 

  1. '\0'은 우리 눈에 보이지 않고 프로그램 내부에서 가지고 있기 때문에 항상 생략되어 있다고 보시면 됩니다. 만약에 초기화를 변수 = "문자열" 로 했다면 무조건 맨 끝에 '\0'이 들어가 있습니다.

그런데, 이렇게 할 수도 있습니다. NULL을 명시적으로 넣지 않는 것입니다.

 

#include <stdio.h>

int main() {
    // 문자 배열 선언
    char str[6];  // 문자 5개를 넣을 공간을 마련, 마지막 null 문자는 넣지 않음
    int i;

    // 반복문을 통해 문자 배열에 'A'부터 'E'까지 넣음
    for (i = 0; i < 5; i++) {
        str[i] = 'A' + i;  // 'A', 'B', 'C', 'D', 'E' 순서대로 저장
    }
    // null 문자('\0')는 넣지 않음

    // %s로 출력
    printf("문자열: %s\n", str);

    return 0;
}

이 경우에는 정상적으로 출력이 되긴 합니다만, 컴파일러의 버전이나 프로그램 설계에 따라서 쓰레기값(이상한 값)이 출력될 수 있습니다.

 

대부분의 경우 정상적으로 출력이 되긴하나, 그렇지 않을 수도 있다는 이야기죠.

그래서 보통은 문자를 여러 개를 넣어서 문자열로 만들 때는 가장 마지막에 문자가 끝났다는 의미로 '\0'을 넣곤 합니다.

 

그리고 엄청나게 큰 배열을 먼저 선언하고(예를 들어 100) 거기에 5개의 문자만 넣을 때도 문제가 됩니다. 이 경우에는 어디가 끝인지 잘 모르기 때문에 6번째에 '\0'을 넣어서 문자열이 완료되었다고 표기하기도 합니다. 최근 이 예제가 기출문제로 등장했습니다.

 

이해에 도움이 되셨을까요?

필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)

0

40

2

26년 1회 실기 해설 강의

0

55

2

53번 4-1 자료 오류 있는 것 같습니다.

0

70

2

7번문제

0

59

2

C언어 변형문제 9번문제 Pdf 수정요청

0

47

2

메서드 오버드라드

0

47

2

실수

0

46

1

공부 우선순위 우선강의 알려주세요

0

87

1

생성자 호출순서 강의 10번 문제 30분대 질문입니다

0

48

2

25년 2회 기출 5:40 질문입니다.

0

40

2

모의고사1회 3번 파이썬문제

0

73

2

C언어 출제변형 6번 문제

0

50

2

c언어 출제변형 강의 질문

0

31

2

28:40

0

33

2

C :  언어 배열과  문자열 수업자료

0

29

2

파이썬 리스트, 딕셔너리 질문

0

41

2

모의고사 관련 질문 건

1

68

3

자료 내용 오류

0

63

2

정적 변수, 정적 메서드(static) v2

0

48

2

v1.2 와 v0.91 PDF

0

101

1

업캐스팅 (부모형태, 자식생성자)

0

51

2

정보처리산업기사 준비중입니다.

0

74

2

실기 D -6

0

105

2

(기출) 2024년 2회 기출문제 - 이론 포함 22분32초 질문입니다

0

57

3