ft_printf 설명(문자)

구름코딩·2020년 8월 13일
0

%c, %s, %p

캐릭터형 %c

int main(void)
{
    char c = 'a';
    int n = 10;

    printf("1 >%*c<\n", n, c);
    printf("2 >%-*c<\n", n, c);
    printf("3 >%*.c<\n", n, c);
    printf("4 >%-c<\n", c);
    printf("5 >%-.c<\n", c);
    printf("6 >%.c<\n", c);
    printf("7 >%10.4c<\n", c);
    printf("8 >%.4c<\n", c);
    printf("9 >%.c<\n", c);
}

1 >         a<
2 >a         <
3 >         a<
4 >a<
5 >a<
6 >a<
7 >         a< // 소수점 뒤 4는 무시됨 (에러)
8 >a<		   // 소수점 무시됨 (에러)
9 >a<

캐릭터형에 대해서는 .(온점)이 아무런 효과없이 무시되며 .뒤에 숫자가 나올경우 ERROR처리된다

그 외, 폭을 지정해주는 수에대해서는 정상적으로 작동한다

문자열 %s

int main(void)
{
    char c[] = "this is string";
    int n = 10;

    printf("1 >%*s<\n", n, c);
    printf("2 >%-*s<\n", n, c);
    printf("3 >%*.s<\n", n, c);
    printf("4 >%-s<\n", c);
    printf("5 >%-.s<\n", c);
    printf("6 >%.s<\n", c);
    printf("7 >%10.4s<\n", c);
    printf("8 >%.4s<\n", c);
    printf("9 >%.1s<\n", c);
    printf("A >%.s<\n", c);
}

1 >this is string<
2 >this is string<
3 >          <
4 >this is string<
5 ><
6 ><
7 >      this<
8 >this<
9 >t<
A ><

문자열의 경우 .(온점)이 정상적인 역활을 한다. 온점 뒤 수만큼만 출력을 해주며 온전 앞 수만큼 폭을 유지해준다

메모리주소값 %p

int main(void)
{
    //char c[] = "this is string";
    int num = 10;
    int *c = &num;
    int n = 30;

    printf("1 >%*p<\n", n, c);
    printf("2 >%-*p<\n", n, c);
    printf("3 >%*.*p<\n", n, n, c);	//error
    printf("4 >%-p<\n", c);
    printf("5 >%-.p<\n", c);
    printf("6 >%.p<\n", c);
    printf("7 >%10.4p<\n", c);	//error
    printf("8 >%.4p<\n", c);	//error
    printf("9 >%.1p<\n", c);	//error
    printf("A >%.p<\n", c);
}

1 >                0x7ffee956981c<
2 >0x7ffee956981c                <
3 >0x0000000000000000007ffee956981c< //error
4 >0x7ffee956981c<
5 >0x7ffee956981c<
6 >0x7ffee956981c<
7 >0x7ffee956981c<	//error
8 >0x7ffee956981c<	//error
9 >0x7ffee956981c<	//error
A >0x7ffee956981c<

포인터형의 경우.(온점)이 아무런 효과없이 무시되며 .뒤에 숫자가 나올경우 ERROR처리된다

그 외, 폭을 지정해주는 수에대해서는 정상적으로 작동한다

profile
내꿈은 숲속의잠자는공주

0개의 댓글

관련 채용 정보