c01 - KimTaebin-ai/study_posts GitHub Wiki
ํฌ์ธํฐ์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ๋ฑ์ ๋ค๋ฃจ๋ ๋ฌธ์
#include <unistd.h>
void ft_ft(int *nbr)
{
*nbr = 42;
}
main ํจ์์์ ํ ์คํธ์ฝ๋ ์ฌ์ฉ์ ํด๋น ํจ์์ ์ธ์๊ฐ ์ ๋ฌ์์ & ๋ก ์ฃผ์๊ฐ์ ์ ๋ฌํด์ผํจ
ํฌ์ธํฐ ๋์จ๋ค๊ณ ์ซ์ง๋ง์..! ์ด๋ ค์ด ๊ฑฐ ํ๋๋ ์๋๋ผ
#include <unistd.h>
void ft_ultimate_ft(int *********nbr)
{
*********nbr = 42;
}
์ฒ์ ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ๋นํฉํ ์ ์๋ค. ์์ ๋งํ๋ค์ํผ ์ซ์ง๋ง๊ณ ์นจ์ฐฉํ๊ฒ ๋ฌธ์ ๋ฅผ ๋ค์ฌ๋ค๋ณด์. ๊ทธ์ ๋ค์ค ํฌ์ธํฐ์ ๋์ ๋ฐฉ์ ์ดํด๋ฅผ ์๊ตฌํ๋ ๋ฌธ์ ์ด๋ค
ptr1 = 123
*ptr2 = &ptr1
**ptr3 = &ptr2
.
.
.
์ด ๋ฌธ์ ๋ 9์ค ํฌ์ธํฐ๊ธฐ ๋๋ฌธ์ ์์ ptr์ด 9๊น์ง ๊ฐ์ผ ์ฐธ์กฐํ ์ ์๋ค.
void ft_swap(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
ํฌ์ธํฐ๋ฅผ ๋์น์ง ์๋๊ฒ ์ค์
๋ฌธ์ ๋ฅผ ์ข ํ์ด๋ณด๋ ์ฌ์ฌ ์ด ์์คํ ์ ๋ํด ๊ฐ์ด ์จ๋ค. ์ด์ ์ด๋ฐ ์ ํ์ ๋ฌธ์ ๋ ๋ค์์ ๋ฌด์กฐ๊ฑด ์ฌํ์ฉํ ๊ฑฐ๋ค.
์ด๋ฒ ํ ๋ฒ์ ์๋ฒฝํ ์ดํดํ๊ณ ๋์ด๊ฐ์.
#include <unistd.h>
void ft_div_mod(int a, int b, int *div, int *mod)
{
*div = a / b;
*mod = a % b;
}
void ft_ultimate_div_mod(int *a, int *b)
{
int temp1;
int temp2;
temp1 = *a / *b;
temp2 = *a % *b;
*a = temp1;
*b = temp2;
}
#include <unistd.h>
void ft_putstr(char *str)
{
int i;
i = 0;
while (str[i] != '\0')
{
write(1, &str[i], 1);
i++;
}
}
char ์๋ฃํ์ 1๋ฐ์ดํธ์ด๋ค. ๋ฐ๋ผ์ '๋ฌธ์' ํ ๊ธ์๋ง ์ ์ฅ์ด ๊ฐ๋ฅํจ
๊ทธ๋ฌ๋ ๋ฌธ์ ์๊ตฌ์ฌํญ์ธ '๋ฌธ์์ด'์ ํฌ๊ธฐ๋ 1๋ฐ์ดํธ๋ฅผ ๋์ด์ ๋ค char ์๋ฃํ์ ์ ์ฅํ ์ ์๋ค
๊ทธ๋ ๋ค๋ฉด c์ธ์ด์์ ๋ฌธ์์ด์ ์ด๋ป๊ฒ ์ ์ฅํ๋?
๋ฌธ์์ด์ char ๋ณ์์ ๊ทธ๋๋ก ์ ์ฅํ์ง ์๊ณ ํฌ์ธํฐ๋ฅผ ์ด์ฉํ์ฌ ์ ์ฅํ๋ค
๋ํ c์ธ์ด์ ๋ฌธ์์ด์ ๋ง์ง๋ง์ ํญ์ ๋๋ฌธ์๊ฐ ๋๋ค (๋ฌธ์์ด์ ๋์ ์๋ฏธํ๋ค)
๋ฐ๋ผ์ char * ๋ก ๋ฌธ์์ด์ ์ ์ฅ
๋ฌธ์์ด์ ๋๊น์ง ๋ฐ๋ณต๋ฌธ ๋๋ฆฌ๊ธฐ
#include <unistd.h>
int ft_strlen(char *str)
{
int i;
i = 0;
while (str[i] != '\0')
{
i++;
}
return (i);
}
๊ฐ์ธ์ ์ผ๋ก ์ ๋ฌธ์ ์ ๋ค์ด๊ทธ๋ ์ด๋๋ผ๊ณ ์๊ฐํ๊ธด ํจ
str i ๋ก ์กฐ๊ฑด๋ฌธ ๋๋ฆฌ๊ณ i++ ์ ์ ์ญ๋ณ์์ ๋ด์ ์กฐ๊ฑด๋ฌธ ๋๋ด๊ณ ๋์ ๋ฆฌํดํด์ฃผ๋ฉด ๊ทธ๊ฒ count ๊ฐ์
๋ฑ ๋ณด๋๊น 05, 06๋ฒ์ด ์ด๋ฒ ๊ณผ์ ์ ํต์ฌ์ด ๋ ๊ฒ ๊ฐ๋ค. ์ ๋๋ก ๋ฌธ์์ด์ ๋ํด ์์ง๋ง
#include <unistd.h>
void ft_rev_int_tab(int *tab, int size)
{
int temp;
int i;
i = 0;
while (i < size / 2)
{
temp = tab[i];
tab[i] = tab[size - 1 - i];
tab[size - 1 - i] = temp;
i++;
}
}
ํ์ด๋ฅผ ํ๊ธด ํ๋๋ฐ ์ ์ถํ๊ณ ๋ณด๋ c00๋ฒ์์ ์ฌ์ฉํ๋ swap ํจ์๋ฅผ ์ฌ์ฌ์ฉํ์ผ๋ฉด ์ด๋ ์๊ฐ ํ๋ ์๊ฐ์ด ๋ ๋ค.
#include <unistd.h>
void ft_sort_int_tab(int *tab, int size)
{
int temp;
int i;
int j;
i = 0;
while (i < size)
{
j = 0;
while (j < size)
{
if (tab[i] < tab[j])
{
temp = tab[i];
tab[i] = tab[j];
tab[j] = temp;
}
j++;
}
i++;
}
}
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ (๋ฒ๋ธ, ์ ํ, ์ฝ์ ) ์ค ๊ณจ๋ผ์ ํด๊ฒฐํ๋ฉด ๋จ
๋ ๋ฒ๋ธ ์ ๋ ฌ๋ก ํด๊ฒฐํจ. ์ ๋ ฌ์ ๋ํด์ ๊ณ ๋ฏผํ๊ธฐ ์ ์ ์์ด ๋จผ์ ์์ง์ฌ๋ฒ๋ฆผ..