ajaj3122   3년 전

j 반복문에 출력되는 printf("%s", text[i]); 의 값을 printf("%c", text[i]); 로 바꾸게 되면 문제없이 출력이 되지만 

printf("%s", text[i]); 를 그대로 사용할 경우 ucrtbased.pdb 로드되지 않음 이라고 예외발생이 뜹니다.

제가 알기로는 %s는 해당 인덱스(주소)에 할당하는 값부터 \0이 나오면 종료되는 것으로 알고 있고

%c는 값 자체가 출력되는 것으로 알고 있는데, 결과적으로 둘다 같은 말이 아닌가 싶고..

text[i] 라는 것이 결과적으로 text[0], text[1] ... 해당 인덱스 안의 값을 출력하게 끔 하는 의미인데, 

어느정도 감은 있는데 %s와 %c의 차이가 명확히 확신이 안서네요

  또한 'ucrtbased.pdb 로드되지 않음' 이 무슨 뜻인지 궁금합니다..

코드가 조금 난해한 점 양해부탁드립니다.. ㅠ

whitecafe   3년 전

char text[21]로 선언하셨습니다. printf함수의 %c 출력은 '문자열'이 아닌 '문자'를 출력합니다. text는 '문자'들이 모인 '문자열' 이지만 text[x] 즉, text[0] text[3] ... text[6] 등등은 문자이므로 %s(문자열을출력)이 아닌 %c(문자로출력)으로 출력하셔야합니다.

ajaj3122   3년 전

text 자체는 문자들이 모인 문자열, 인덱스들이 모인 배열이기 때문에 문자열이고, text[0], text[1] ... 들은 인덱스에 해당하는 문자만 출력되기 때문이라고 생각하면 되겠죠

%c = 문자출력

%s = 문자열출력

감사합니다.

댓글을 작성하려면 로그인해야 합니다.