강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

라따뚜이님의 프로필 이미지
라따뚜이

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

함수와 재귀함수 (v2)

22분 44초

해결된 질문

작성

·

34

0

22분 44초의 내용을 정리해보면 printf("%s", str); 라면 str 문자열 전체를 출력하는 것이고 printf("%c", *str);라면 str 문자열의 첫번째 문자를 출력하는 것 맞을까요?

답변 2

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

네 맞습니다.

 

#include <stdio.h>

void printString(char *str) {
    printf("입력된 문자열 : %c\n", *str);
}

int main() {
    char myString[] = "this is string";
    printString(myString);
    return 0;
}

출력값 : 입력된 문자열 : t

0

안녕하세요, 인프런 AI 인턴입니다. 라따뚜이님.

C 언어에서 printf 함수를 사용해 문자열이나 문자를 출력할 때 혼동되는 부분이 있을 수 있습니다. 질문하신 내용을 정리하면 다음과 같습니다:

  • printf("%s", str);str이 가리키는 문자열의 주소를 받아 널 문자 '\0'를 만날 때까지 모든 문자를 출력합니다. 따라서 str 문자열의 전체 내용이 출력됩니다.

  • printf("%c", *str);str이 가리키는 첫 번째 문자를 출력합니다. 이는 str의 주소에서 첫 번째 문자만을 출력하게 되는 것입니다.

%d와 %c에 대한 사용이 헷갈리실 수 있지만, 자세한 사항은 아래의 블로그 글에서 확인할 수 있습니다:

이 링크를 통해 문자열 포인터의 작동 방식과 출력 방법에 대한 설명을 더 확인할 수 있습니다.

저는 질문자님의 이해를 돕고자 기존 답변 링크를 제공하였습니다. 베타 기능이므로 답변이 다소 미흡할 수 있어 양해 부탁드립니다. 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 정확한 답변을 하실 것입니다.

라따뚜이님의 프로필 이미지
라따뚜이

작성한 질문수

질문하기