inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

C언어 기출문제의 변형

39분 25초

해결된 질문

135

뿐뿐

작성한 질문수 2

0

lower_str[strlen(original)]='\0';

upper_str[strlen(original)]='\0';

는 어떤 기능을 하는지 궁금합니다

 

문제 풀이는 다 이해가 되는데

저 식이 뭔지 잘 모르겠어서 질문드립니다

c

답변 2

1

주말코딩

문자열 가장 마지막에 null 문자를 넣는 겁니다.

길이는 양수 1부터 시작하는데 인덱스는 0부터 시작합니다.

 

그래서 null이 없는 문자의 길이를 잰 다음 그것을 역으로 인덱스로 활용하면 문자의 끝 바로 다음 인덱스를 가리킵니다.

 

그 부분은 문자가 없고, null 문자로 막아야 합니다. 그래서 저렇게 쓰는 것이고, 그 부분에 null을 할당해서 온전한 문자열을 만드는 것입니다.

0

뿐뿐

질문이 하나 더 있습니다!

널값은 배열이 생성될 때 자동으로 내장되어있다고 알고 있었는데

저 경우는 왜 널값을 넣어줘야되는지 궁금합니다

0

주말코딩

original의 배열 같은 경우에는 맨 끝 문자의 그 다음을 조사해보면 \0이 들어가 있을 겁니다.

그런데 아래에 2개의 배열은 다릅니다.

지금 original에서 하나씩 빼서 일일이 넣고 있습니다.

 

자동으로 문자열 끝에 \0을 넣으려면 original처럼 임의의 배열을 선언하고 문자열 전체를 넣거나, 원래 있던 문자열을 온전히 복사해왔을 때 그렇습니다.

 

지금은 하나씩 글자를 빼서 넣고 있습니다. (반복문에서 그 할당이 일어나는 것이죠)

 

C언어는 일종의 바보 언어입니다. 자동으로 해주는 게 그렇게 많이 없습니다.

반복문만 보면, 도대체 어디가 문자열의 끝인지 알 수 있는 방법이 없습니다. 만약에 "반복문의 조건문에서 \0을 만났을 때, \0을 문자 다음에 삽입하라" 라는 지시문이 있으면 또 달라졌겠죠.

 

지금 반복문은 그저 문자를 하나씩 넣은 것 뿐이지, \0 문자를 명시적으로 넣으라고 한 적이 없습니다. 이 경우에는 우리가 일일이 넣어줘야 합니다.

 

비슷한 경우가 이겁니다.

char arr[2] = {"H","e"};

이 경우에도 null이 없습니다. 그래서 출력을 할 때 값이 제대로 나오지 않을 수 있습니다.

 

명확하게 하려면

char arr[] = "He";로 하거나

char arr[3] = {'H', 'e', '\0'}; 거나

char *str = "He"; 로 선언했어야 합니다.

char str[3] = "He";도 가능합니다.

0

뿐뿐

정성스런 답변 감사합니다!

1

주말코딩

저녁 늦게 공부하시네요. 화이팅입니다!

정처기 필기 준비할때 이 이론을 다시 외워도 될까요?

0

43

2

조건 반복문 질문: for 문 ?

0

59

1

정처기 26-2회. 9번 질문드립니다!

0

77

1

이론 보면서 질문이 있습니다.

0

71

2

정보처리기사 실기 26년 2회 SRT 스케줄링 문제 단위 질문

0

86

2

유튜브(정보처리기사 실기 | 26년 2회 기출문제 코드 해설)

0

143

2

262 정처기 실기 C언어코딩

0

45

1

정보처리기사 262 실기 Hash(해시) 질문

0

77

2

static 변수 질문입니다.

0

60

2

파이썬 4강 질문입니다.

0

67

2

모의고사 1회 3번문제

0

87

3

41강 30:10

0

66

2

이론 공부법 질문 있습니다.

0

86

2

부모의 생성자 관련 질문

0

64

2

시험지 문제에 필기해도 되나요?

0

87

3

41강 11:23

0

58

2

4강파이썬 질문입니다

0

53

2

try-catch 핸들러명

0

64

2

36강 3:48

0

62

2

35강 18:27

0

65

2

자식 코드 내 super() 생략

0

59

2

출력질문

0

73

2

31강 4:06

0

64

2

파이썬 학습자료가 강의 자료와 다릅니다.

0

94

3