16분29초 마지막 프린트문에 "변환된 문자열 : %\n", result 인데 개행을 해야 하는거 아닌가요?
시저암호 문제인제
마지막에 개행하라는 것이 보여서 그럼 답이
N
d
s
c
1
아닌가요?
답변 1
0
아닙니다. 전부 일자로 붙어서 출력되어야 합니다.
지금 반복문을 잘 보실 필요가 있습니다.
위의 알고리듬은 어쨌든 간에 최종 결과물은 result[i]에 누적하고 있습니다.
i를 0부터 1씩 증가시켜보겠습니다.
result[0] = 뭔가 --- result라는 배열의 첫 번째 요소에 뭔가를 넣는다.
result[1] = 뭔가 --- result라는 배열의 두 번째 요소에 뭔가를 넣는다.
result[n] = 뭔가 --- result라는 배열의 n+1번째 요소에 뭔가를 넣는다.
이렇게 끝까지 가게 되면, 결국 result라는 하나의 온전한 배열이 만들어집니다.
( 지금 처음에 result[100]을 선언해두었으니 100에 해당하는 빈칸에 넣는 것입니다. )
for문은 p[i]가 null이 아닐 때까지 돕니다. 거짓이 되려면 p[i]가 null이 되는 순간에 끝납니다. (false)
그 뜻은 p가 담고 있는 모든 문자열을 돌고 나서 가장 마지막을 가리켰다는 뜻입니다.
(문자 하나씩 포인터로 넘겨가면서 짚었고, 가장 마지막에 \0 문자를 짚었기 때문)
그리고 마지막에 result의 끝에 null ('\0')을 넣었습니다.
지금 이 상태는 ['문자1개', '문자1개', '문자1개', ....., '\0'] 인 상태가 result에 담겨 있는 것입니다.
이 배열을 %s로 출력하면 처음부터 '\0'을 만날 때까지 모두 출력합니다.
그래서 개행이 안되고 일자로 죽 출력되는 것이 맞습니다.
C언어에서 문자열은 그냥 문자의 배열과 같다고 보셔야 합니다.
#include <stdio.h>
int main() {
// 문자로 구성된 배열 선언
char arr[6] = {'H', 'e', 'l', 'l', 'o'};
// 문자열의 끝을 나타내는 '\0'을 삽입
arr[5] = '\0'; // 배열의 마지막 요소에 '\0' 삽입
// %s로 배열 출력
printf("%s\n", arr);
return 0;
}이 예제의 출력값은 Hello가 됩니다. (물론 마지막에 개행 하나 되어야 합니다.)
이해에 도움이 되셨을까요?
필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)
0
51
2
26년 1회 실기 해설 강의
0
68
2
53번 4-1 자료 오류 있는 것 같습니다.
0
73
2
7번문제
0
60
2
C언어 변형문제 9번문제 Pdf 수정요청
0
48
2
메서드 오버드라드
0
51
2
실수
0
46
1
공부 우선순위 우선강의 알려주세요
0
90
1
생성자 호출순서 강의 10번 문제 30분대 질문입니다
0
49
2
25년 2회 기출 5:40 질문입니다.
0
43
2
모의고사1회 3번 파이썬문제
0
75
2
C언어 출제변형 6번 문제
0
50
2
c언어 출제변형 강의 질문
0
32
2
28:40
0
34
2
C : 언어 배열과 문자열 수업자료
0
31
2
파이썬 리스트, 딕셔너리 질문
0
43
2
모의고사 관련 질문 건
1
69
3
자료 내용 오류
0
64
2
정적 변수, 정적 메서드(static) v2
0
51
2
v1.2 와 v0.91 PDF
0
104
1
업캐스팅 (부모형태, 자식생성자)
0
51
2
정보처리산업기사 준비중입니다.
0
74
2
실기 D -6
0
105
2
(기출) 2024년 2회 기출문제 - 이론 포함 22분32초 질문입니다
0
60
3





