๐Ÿ† ๋Œ€์™ธํ™œ๋™ & ๊ฒฝํ—˜/๋Œ€์™ธํ™œ๋™

Exercise 00 : ft_print_program_name ํ’€์ด → argc, argv๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฌธ์ œ. argv[0]๋Š” ํ”„๋กœ๊ทธ๋žจ๋ช… ์ž„์„ ์ดํ•ดํ•˜๋Š” ๋ฌธ์ œ. ์ฃผ์˜ํ•  ์‚ฌํ•ญ 1)argc์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด, ์—๋Ÿฌ๊ฐ€ ๋œจ๊ธฐ ๋•Œ๋ฌธ์— ๊ตณ์ด ์“ธ ํ•„์š” ์—†๋Š” ์กฐ๊ฑด์ด์ง€๋งŒ, argc ! = 0์ผ๋•Œ๋ฅผ ๋„ฃ์–ด์คฌ์Œ. 2)\0 ์œผ๋กœ ๋‹ค์Œ ์ค„๋กœ ๋„˜๊ฒจ์ค˜์•ผ ํ•จ. ์ฝ”๋“œ #include voidft_putstr(char *str) { intlen; len = 0; while (str[len]) ++len; write(1, str, len); } intmain(int argc, char **argv) { if (argc != 0) ft_putstr(argv[0]); write(1, "\\n", 1); return (0); } Exerci..
Exercise 00 : ft_iterative_factorial ๋ฌธ์ œ ํ’€์ด ํŒฉํ† ๋ฆฌ์•Œ ํ•จ์ˆ˜๋ฅผ ๋ฐ˜๋ณต ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ ์ธ์ž๊ฐ€ ์œ ํšจํ•˜์ง€ ์•Š์œผ๋ฉด 0 ๋ฐ˜ํ™˜ = ์Œ์ˆ˜์ผ๋•Œ๋Š” 0๋ฐ˜ํ™˜ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋Š” ์ฒ˜๋ฆฌํ•˜๋ฉด ์•ˆ๋จ.(ํ•œ/์˜ ์˜ค์—ญ ์ฃผ์˜) cf) 0! = 1 ์ฝ”๋“œ intft_iterative_factorial(int nb) { intfactorial; intindex; if (nb < 0) return (0); index = 1; factorial = 1; while (index < nb + 1) factorial = factorial * index++; return (factorial); } Exercise 01 : ft_recursive_factorial ๋ฌธ์ œ ํ’€์ด → ํŒฉํ† ๋ฆฌ์–ผ ํ•จ์ˆ˜๋ฅผ ์žฌ๊ท€ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ ์ธ์ž๊ฐ€ ์œ ํšจํ•˜์ง€ ์•Š..
Exercise 00 : ft_strlen ๋ฌธ์ œ ํ’€์ด → (์ด์ „ ๋ฌธ์ œ์™€ ๋™์ผํ•œ ๋ฌธ์ œ) ๋ฌธ์ž์—ด ๋‚ด์˜ ๋ฌธ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ์–ด ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ ์ž‘์„ฑ ์ฝ”๋“œ #include intft_strlen(char *str) { inti; i = 0; while (str[i]) ++i; return (i); } Exercise 01 : ft_putstr ๋ฌธ์ œ ํ’€์ด → (์ด์ „ ๋ฌธ์ œ์™€ ๋™์ผํ•œ ๋ฌธ์ œ) ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜ ์ž‘์„ฑ ์ฝ”๋“œ #include voidft_putchar(char c) { write(1, &c, 1); } voidft_putstr(char *str) { while (*str) ft_putchar(*(str++)); } Exercise 02 : ft_putnbr ๋ฌธ์ œ ํ’€์ด → (์ด์ „ ๋ฌธ์ œ์™€ ๋™์ผํ•œ ๋ฌธ์ œ) ๋งค๊ฐœ ๋ณ€..
Exercise 00 : ft_strcmp intft_strcmp(char *s1, char *s2) { while (*s1 || *s2) { if (*s1 != *s2) return (*s1 - *s2); //s1์ด ๋” ํฌ๋ฉด ์–‘์ˆ˜, s2๊ฐ€ ๋” ํฌ๋ฉด ์Œ์ˆ˜ ์ถœ๋ ฅ ++s1; ++s2; } return (0); } :strcmp(๋ฌธ์ž์—ด1, ๋ฌธ์ž์—ด2) : ์ธ์ž๋กœ ์ „๋‹ฌ๋œ ๋‘๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜๋Š” ํ•จ์ˆ˜. =[compare strings] return : ์Œ์ˆ˜ ๋ฐ˜ํ™˜ (str 1 str2) cf)๊ฐ ๋ฌธ์ž ๋น„๊ต ๊ธฐ์ค€์€ ASCII ์ฝ”๋“œ์ž„. ๊ถ๊ธˆํ•œ ์ . while(*s1 || *s2) ํ‹€๋ ธ์Œ. Exercise 01 : ft_strncmp #include..
Exercise 00 : ft_strcpy char*ft_strcpy(char *dest, char *src) { int i; i = 0; while (src[i]='\\0') { dest[i] = src[i]; ++i; } dest[i] = 0; return (dest); } strcpyํ•จ์ˆ˜ ๊ตฌํ˜„ํ•˜๊ธฐ โ–ผ strcpy ํ•จ์ˆ˜๋ž€? strcpy(๋ณต์‚ฌ๋ฅผ ๋ฐ›์„ ๋Œ€์ƒ์˜ ์‹œ์ž‘์ฃผ์†Œ, ์›๋ณธ์˜ ์‹œ์ž‘ ์ฃผ์†Œ) : ๋Œ€์ƒ ๋ฌธ์ž์—ด์˜ ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ =string copy์˜ ์ค„์ž„ ํ‘œํ˜„์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋ณต์‚ฌํ•œ๋‹ค๋Š” ๋œป. ์–ด๋–ค ๋ณ€์ˆ˜(๋ฌธ์ž์—ด ์ƒ์ˆ˜)์— ์ €์žฅ๋˜์–ด์žˆ๋Š” ๋ฌธ์ž์—ด์„ ๋‹ค๋ฅธ ๋ณ€์ˆ˜(๋ฉ”๋ชจ๋ฆฌ)์— ๋ณต์‚ฌํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. cf) a[]=’banana’ //100๋ฒˆ์ง€์— ์ €์žฅ๋˜์–ด ์žˆ๋‹ค๊ณ  ํ•˜์ž. b[]=’kiwi’๋ผ๊ณ  ํ•  ๋•Œ, //200๋ฒˆ์ง€์— ์ €์žฅ๋˜์–ด ์žˆ๋‹ค๊ณ ..
Exercise 00 : ft.c voidft_ft(int *nbr) { *nbr = 42; } Exercise 01 : ft_ultimate_ft.c voidft_ultimate_ft(int *********nbr) { *********nbr = 42; } Exercise 02 : ft_swap.c voidft_swap(int *a, int *b) { inttmp; tmp = *a; *a = *b; *b = tmp; } Exercise 03 : ft_div_mod.c voidft_div_mod(int a, int b, int *div, int *mod) { *div = a / b; *mod = a % b; } Exercise 04 : fl_ultimate_div_mod.c voidft_ultimate_..
Exercise 00 : ft_putchar write ํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ #include voidft_putchar(char c) { write(1, &c, 1); } ์ธ์ž file descriptor :n ํŒŒ์ผ์— ์“ธ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ fd : 0(์ž…๋ ฅ), 1(์ถœ๋ ฅ), 2(์—๋Ÿฌ) nbytes : ์“ฐ๊ณ ์žํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ธธ์ด๋กœ buf์˜ ๊ธธ์ด๋ณด๋‹ค ๊ธธ์–ด์„  ์•ˆ๋จ. write ํ•จ์ˆ˜๋Š” ๋ฌธ์žํ˜•๋งŒ ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ. Exercise 01 : ft__print__alphabet → a ๋ถ€ํ„ฐ z ๊นŒ์ง€ ํ•œ ์ค„๋กœ ํ‘œ์‹œํ•˜๋Š” ํ•จ์ˆ˜ #include voidft_print_alphabet(void) { charc; c = 'a'; while (c = 'a') { write(1, &c, 1); --c; } } ๋ฌธ์ž๋ผ๋ฆฌ์˜ ๋Œ€์†Œ ๋น„๊ต = ์•„์Šคํ‚ค ์ฝ”๋“œ ..
Exercise 01 : print_groups groups $FT_USER | sed 's/ /,/g' | tr -d '\\n' groups๋ฅผ ์ด์šฉํ•œ ์ฝ”๋“œ Exercise 02 : find_sh find . -type f -name "*.sh" -exec basename {} \\; | sed 's/.sh$//g' find . -type f -name "*.sh" -exec basename {} .sh \\; -> basename์œผ๋กœ ํ•œ๋ฒˆ์— ๊ฒฝ๋กœ๋ช…๊ณผ ํ™•์žฅ์ž๋ฅผ ์ง€์šธ ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ. type f : ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜๋Š” ํŒŒ์ผ์„ ์ฐพ๋Š” ์˜ต์…˜ ์กฐ๊ฑด [ํŒŒ์ผ์„ ์ฐพ์•„๋ผ]๋ฅผ ๋งŒ์กฑ์‹œํ‚ด find : ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด . : ์กฐ๊ฑด [ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์™€ ๊ทธ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์ฐพ์•„๋ผ] name “*.sh” ..
Exercise 06 : gitignore .gitignore : Github ์›๊ฒฉ ์„œ๋ฒ„์— ๋กœ์ปฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์˜ฌ๋ฆด ๋•Œ ๋ถˆํ•„์š”ํ•œ ๋กœ๊ทธ ํŒŒ์ผ๋“ค์€ ์—…๋ฐ์ดํŠธ ํ•˜์ง€ ์•Š๋„๋ก ๋ฌด์‹œํ•  ํŒŒ์ผ๋“ค ๋ชฉ๋ก์„ ๋งŒ๋“œ๋Š” ๊ฒƒ. .gitignore ํŒŒ์ผ ๋งŒ๋“œ๋Š” ๋ฒ• : touch .gitignore cf)Git Bash์— ๋“ค์–ด๊ฐ€ .git์ด ์žˆ๋Š” ๋‚ด git ํ”„๋กœ์ ํŠธ์˜ ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์— cd ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋“ค์–ด๊ฐ„ ํ›„ ์œ„์™€ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด .gitignore ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ค€๋‹ค. ์‚ฌ์‹ค ๋ฉ”๋ชจ์žฅ์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ “.txt”๊ฐ€ ๋’ค์— ๋ถ™์„ ์šฐ๋ ค ๋•Œ๋ฌธ์— ์ด ๋ฐฉ๋ฒ•์„ ๋” ์ถ”์ฒœํ•œ๋‹ค. .gitignore์€ ๋ฐ˜๋“œ์‹œ ๋ฃจํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. #!/bin/bash #.shํŒŒ์ผ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ git ls-files --others..
PISON
'๐Ÿ† ๋Œ€์™ธํ™œ๋™ & ๊ฒฝํ—˜/๋Œ€์™ธํ™œ๋™' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก