C언어
[c언어] 전문통신시 leading-zero, trailing-space 채우는 방법
xemaker
2017. 2. 7. 18:29
c언어는 전문으로 소켓통신을 많이 한다. 때문에 보통 엑셀로 작성된 전문 설계서,레이아웃을 보면 숫자 필드는 leading-zero, 문자 필드는 trailing-space로 채우라고 되어 있다.
c를 처음 하는 사람들은 어떻게 하라는건지 감이 안잡힌다.
사실 알고 보면 별거 아니다.
먼저 leading-zero
숫자 5라고 되어있을경우
char ci[5+1];
memset(ci,0x00,sizeof(ci));
sprintf(ci,"%.5d",1);
하고 ci를 찍어보면
00001
이렇게 출력된다. 즉, 숫자 1 앞에 0이 4개 붙어서 총 5자리고 만든다.
이어서 trailing-space
char wk_char50[50+1];
memset(wk_char50,0x00,sizeof(wk_char50));
sprintf(wk_char50,"%-50s","가");
해서 wk_char50을 찍어보면
가
이런식으로 뒤에 공백이 붙어서 총 50만큼의 길이가 된다.
c를 처음 하는 사람들은 어떻게 하라는건지 감이 안잡힌다.
사실 알고 보면 별거 아니다.
먼저 leading-zero
숫자 5라고 되어있을경우
char ci[5+1];
memset(ci,0x00,sizeof(ci));
sprintf(ci,"%.5d",1);
하고 ci를 찍어보면
00001
이렇게 출력된다. 즉, 숫자 1 앞에 0이 4개 붙어서 총 5자리고 만든다.
이어서 trailing-space
char wk_char50[50+1];
memset(wk_char50,0x00,sizeof(wk_char50));
sprintf(wk_char50,"%-50s","가");
해서 wk_char50을 찍어보면
가
이런식으로 뒤에 공백이 붙어서 총 50만큼의 길이가 된다.