C언어 문자열 안의 문자를 16진수로 변환하는 게 이해가 안됩니다. %0X가 16진수를 표현하는 건 알겠는데, *이 왜 붙어있죠?

조회수 512회

해당 코드

#include <stdio.h>
#include <limits.h>

void str_dump (const char *s)
{
    do {
        int i;
        printf("%c %0*X ", *s, (CHAR_BIT + 3) / 4, *s); 
// 여기서 %0*X가 의미하는 게 무엇인지 모르겠어요.
// (CHAR_BIT+3)/4, *s가 뒤에 왜 붙어있는지 모르겠어요.
// %0X가 16진수를 표현하는 건 알겠는데, *이 왜 붙어있죠?... (기본이 없어 죄송합니다)

        putchar('\n');
    } while (*s++ != '\0');
}

int main()
{
    str_dump("STRING");
    return 0;
}

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)