디버깅할 때 printf()를 많이 사용하지요.

디버깅을 위해 문자열을 출력하는데,

필요한 부분은 앞 몇 문자인데 출력할 문자열 길이가 너무 길어서

확인하기가 어려워서 문자열을 잘라내기해서

출력한다면 어떤 방법을 사용하시나요?


두 가지 방법이 있을 것입니다.


만일 문자열을 변경해도 된다고 하면 몇 번 째 바이트에 NULL을 입력하면 됩니다.

그러나 문자열을 변경해서는 안 된다고 하면 귀찮지만,

따로 버퍼를 만들어서 복사해서 출력해야 합니다.


그러나 printf()에서 %*.s를 사용하면 버퍼를 만들고 복사할 필요가 없습니다.

아래 예를 보시죠.

int main( void){

    char    *ptr = "falinux.com";

    printf( "%.*s\n", 7, ptr);
    printf( "%s\n", ptr);

    return 0;
}

친숙한 %s가 아닌 %.*s로 변경하고 길이와 출력할 문자열 포인터를 넣어 주면

문자열의 왼쪽에서 길이에 맞추어 출력됩니다.