c06 - KimTaebin-ai/study_posts GitHub Wiki
c언어의 main함수 argument를 다루는 방법
#include <unistd.h>
void prt_str(char *str)
{
while (*str)
{
write(1, str, 1);
str++;
}
}
int main(int argc, char *argv[])
{
if (argc > 0)
prt_str(argv[0]);
write(1, "\n", 1);
}
해당 문제를 풀고 며칠 후 exam을 보았는데
문제에 program 이라 명시된 것은 main함수를 넣고 제출하라는 의미이고
function이라 명시된 것은 해당 함수만 구현하여 제출하라는 의미였다..ㄷㄷ
#include <unistd.h>
void ft_putstr(char *str)
{
while (*str)
write(1, str++, 1);
}
int main(int argc, char **argv)
{
int index;
index = 0;
while (++index < argc)
{
ft_putstr(argv[index]);
ft_putstr("\n");
}
}
#include <unistd.h>
void ft_putstr(char *str)
{
while (*str)
write(1, str++, 1);
}
int main(int argc, char **argv)
{
int index;
index = 0;
while (++index < argc)
{
ft_putstr(argv[argc - index]);
ft_putstr("\n");
}
}
#include <unistd.h>
int ft_strcmp(char *s1, char *s2)
{
int i;
int n;
i = 0;
n = 0;
while (1)
{
n = s1[i] - s2[i];
if (n != 0)
break ;
if (s1[i] == '\0' || s2[i] == '\0')
break ;
i++;
}
return (n);
}
void ft_sort_param(int argc, char *argv[])
{
int i;
int j;
char *temp;
i = 1;
while (i < argc - 1)
{
j = i + 1;
while (j < argc)
{
if (ft_strcmp(argv[j], argv[i]) < 0)
{
temp = argv[j];
argv[j] = argv[i];
argv[i] = temp;
}
j++;
}
i++;
}
}
int main(int argc, char *argv[])
{
int i;
int j;
ft_sort_param(argc, argv);
i = 1;
while (i < argc)
{
j = 0;
while (argv[i][j])
j++;
write(1, argv[i], j);
write(1, "\n", 1);
i++;
}
return (0);
}