printf 와 sprintf 를 이용한 포맷에 따른 스트링 만들기
두 함수의 차이 - printf 는 결과를 화면에 출력하고 sprinf 는 결과를 문자열로 반환한다.
형식
%[‘padding-character][-][width][.precision]type
형식 지정
|
type |
의미 |
|
b |
정수(integer)로 해석되며 이진수로 출력한다. |
|
c |
정수로 해석되며 캐릭터(문자 하나)로 출력한다. |
|
d |
정수로 해석되며 십진법의 숫자로 출력한다. |
|
f |
double로 해석되며 실수로 출력한다. |
|
o |
정수로 해석되며 8진수로 출력한다. |
|
x |
정수로 해석되며 소문자 알파벳a-f를 포함한 16진수로 출력한다. |
|
X |
정수로 해석되며 대문자 알파벳A-F를 포함한 16진수로 출력한다. |
|
s |
문자열로 해석되며 문자열을 출력한다. |
** 강조는 많이 사용하는 형식
기본적인 사용 예
정수
printf(“int = %d”, 10);
결과
int = 10
실수
printf(“float = %f”, 2.33);
결과
float = 2.330000 (소수점은 6자리까지 표현된다.)
문자열
printf(“str = %s”, “Kim Soo Young");
결과
str = Kim Soo Young
패딩 지정어를 사용한 출력
패딩 지정어란 자릿수를 맞추기 위해 출력될 값 앞에 특정 문자을 삽입하는 것을 말한다.
예)
printf(“visit %d”, 201);
결과
visit 201
0 으로 다섯자리 까지 패딩할 경우
printf(“visit %05d”, 201);
결과
visit 00201
공백으로 패딩할 경우
printf(“visit % 5d”, 201);
결과
visit 201
패딩은 하나의 문자로만 구성되며(여러개도 되나?) 0 이나 공백이외 다른 문자(숫자를 포함한)를 이용할 때는 패딩 문자 앞에 ‘ 을 붙인다.
1로 패딩할 경우
prifnt(“visit %’15d”, 201);
결과
visit 11201
실수의 정밀도 지정하기
실수의 소수점 이하의 수의 정밀도를 지정하는 방법으로 이는 지정어가 f일 경우에만 이용할 수 있다.
소수를 5자리 까지 표현하기
printf(“FLOAT %.5f”, 1.23422422454344);
결과
FLOAT 1.23422
너비 지정
출력될 너비를 지정하는 경우에 사용하며 기본적으로 오른쪽 정렬을 기준으로 한다. 왼쪽정렬을 할 경우 지정될 숫자 앞에 – 를 붙인다.
오른쪽 정렬일 경우 지정된 너비가 결과값 길이보다 짧을 경우 무시된다.
예) 너비가 정확하게 표현될 수 있도록 <pre> 태그를 이용한다.
echo "<pre>";
printf("%20s\n", "Kim Soo Young");
printf("%-20s%s\n", "Kim Soo Young","end");
printf("%-20s%20d\n", "Kim Soo Young", 99);
echo "</pre>";
결과
Kim Soo Young
Kim Soo Young end
Kim Soo Young 99
첫번째 줄은 처음부터 20칸 떨이진 부분부터 출력된다.
두번째 줄은 문자열이 출력된 후 20칸이 더 출력 된다.
세번째 줄은 문자열이 출력된 후 20칸뒤 부터 추가로 20칸 더 떨어진 부분에 숫자가 출력된다.



