728x90

1. ํฌ๋งท ์ŠคํŠธ๋ง ๋ฒ„๊ทธ๋ž€?

ํฌ๋งท ์ŠคํŠธ๋ง ๋ฒ„๊ทธ๋Š” ํฌ๋งท ๋ฌธ์ž์—ด(format string)์„ ์ ์ ˆํ•˜๊ฒŒ ์ฒ˜๋ฆฌ ํ•˜์ง€ ์•Š์•˜์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ณด์•ˆ ์ทจ์•ฝ์ . C์–ธ์–ด์™€ ๊ฐ™์€ ์–ธ์–ด์—์„œ printf์™€ ๊ฐ™์€ ํ•จ์ˆ˜์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•œ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ printf ํ•จ์ˆ˜๋Š” ํฌ๋งท ์ง€์ •์ž์™€ ๊ฐ’์„ ํ•จ๊ป˜ ์ „๋‹ฌ๋ฐ›์•„์•ผ ํ•œ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, printf(“%s”, str);๋Š” ๋ฌธ์ž์—ด str์„ ์ถœ๋ ฅํ•  ๋•Œ์‚ฌ์šฉ๋˜๋ฉฐ,
ํฌ๋งท ์ง€์ •์ž์ธ %s๊ฐ€ ์ž…๋ ฅ์œผ๋กœ ์ „๋‹ฌ๋œ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
ํ•˜์ง€๋งŒ, ๋งŒ์•ฝ printf์— ํฌ๋งท ๋ฌธ์ž์—ด์„ ์ฃผ์ง€ ์•Š๊ณ  ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๊ทธ๋Œ€๋กœ ์ „๋‹ฌํ•˜๋ฉด, ํฌ๋งท ์ŠคํŠธ๋ง ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

printf(str);

์ด ์ฝ”๋“œ๋Š” printf(“%s”, str); ์ฒ˜๋Ÿผ ํฌ๋งท ์ง€์ •์ž๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํฌ๋งท ๋ฌธ์ž์—ด๋กœ์„œ ์ง์ ‘ str์ด ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.
๋งŒ์•ฝ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์— %x ๊ฐ™์€ ํฌ๋งท ์ง€์ •์ž๋ฅผ ํฌํ•จ์‹œํ‚จ๋‹ค๋ฉด, ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฝํžˆ๊ฑฐ๋‚˜ ์‹ฌ์ง€์–ด ์ˆ˜์ •๋  ์ˆ˜ ์žˆ๋‹ค.


2. ํฌ๋งท ์ŠคํŠธ๋ง ๋ฒ„๊ทธ์˜ ์œ„ํ—˜์„ฑ

  • ์ •๋ณด ์œ ์ถœ: ๋ฉ”๋ชจ๋ฆฌ์˜ ํŠน์ • ๊ฐ’์„ %x์™€ ๊ฐ™์€ ํฌ๋งท ์ง€์ •์ž๋ฅผ ํ†ตํ•ด ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์–ด, ์ค‘์š”ํ•œ ์ •๋ณด๊ฐ€ ์œ ์ถœ๋  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฝ”๋“œ ์‹คํ–‰: ์ž˜๋ชป๋œ ํฌ๋งท ๋ฌธ์ž์—ด์ด ์ž…๋ ฅ๋˜๋ฉด, ๊ณต๊ฒฉ์ž๊ฐ€ ์‹œ์Šคํ…œ์— ์•…์˜์ ์ธ ์ฝ”๋“œ๋ฅผ ์ฃผ์ž…ํ•˜์—ฌ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

3. ํ€ด์ฆˆ 7๋ฒˆ ๋ฌธ์ œ ๋ถ„์„

#include <stdio.h>

int main() {
	char str[100];
	scanf(“%s”, str);
	printf(str);

	return 0;
}

์œ„ ์ฝ”๋“œ์—์„œ ํฌ๋งท ์ŠคํŠธ๋ง ๋ฒ„๊ทธ๋ฅผ ์ผ์œผํ‚ค๊ธฐ ์œ„ํ•œ ํŽ˜์ด๋กœ๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”,
(๋ฌธ์ž์—ด์€ “Hello!!๋กœ ํ†ต์ผ)
  • printf(str);์—์„œ ํฌ๋งท ๋ฌธ์ž์—ด์ด ์ œ๊ณต๋˜์ง€ ์•Š๊ณ , ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด str์ด ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค.
  • ์ทจ์•ฝ์ : ์‚ฌ์šฉ์ž๊ฐ€ %x ๋˜๋Š” %s ๊ฐ™์€ ํฌ๋งท ์ง€์ •์ž๋ฅผ ํฌํ•จํ•œ ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•˜๋ฉด, ์›ํ•˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ฐ’์ด ์ถœ๋ ฅ๋˜๊ฑฐ๋‚˜ ๋” ์‹ฌ๊ฐํ•œ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ ๋ณ€์กฐ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋‹ต: Hello!%x
  • ์—ฌ๊ธฐ์„œ %x๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ƒ์˜ ํŠน์ • ๊ฐ’์„ 16์ง„์ˆ˜๋กœ ์ถœ๋ ฅํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค.
  • ํฌ๋งท ์ŠคํŠธ๋ง ๋ฒ„๊ทธ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํฌ๋งท ๋ฌธ์ž์—ด์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค.
printf(“%s”, str);
// ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด printf๋Š” ํ•ญ์ƒ str์„ ๋ฌธ์ž์—ด๋กœ ์ถœ๋ ฅํ•˜๊ฒŒ ๋˜์–ด, ํฌ๋งท ์ŠคํŠธ๋ง ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค.

    

'E-COPS > 15th ๋น„๊ธฐ๋„ˆ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

WEEK3 - REVERSING  (7) 2024.10.08
WEEK2 QUIZ - VCS, Buffer  (0) 2024.10.08
WEEK2 - Git, Flask  (1) 2024.10.08
WEEK1 - Python, SQL  (0) 2024.09.21
WEEK1 - C, javascript  (0) 2024.09.21

+ Recent posts