C02

Jeongho Kim·2022년 11월 14일
0

42seoul

목록 보기
2/5

ex00. ft_strcpy

char    *ft_strcpy(char *dest, char *src)
{
    int i;

    i = 0; 
    while (*(src + i))
    {
        *(dest + i) = *(src + i);
        i++;
    }
    *(dest + i) = '\0';
    return (dest);
}

ex01. ft_strncpy

char    *ft_strncpy(char *dest, char *src, unsigned int n)
{
    int i;

    i = 0;
    while (*(src + i) && i < n)
    {
        *(dest + i) = *(src + i);
        i++;
    }
    while (i < n)
    {
        *(dest + i) = '\0';
        i++;
    }
    return (dest);
}

ex02. ft_str_is_alpha

int ft_str_is_alpha(char *str)
{
    int i;

    i = 0;
    while(*(str + i))
    {
        if (!((*(str + i) >= 'A' && *(str + i) <= 'Z')
        || (*(str + i) >= 'a' && *(str + i) <= 'z')))
            return (0); 
        i++;
    }
    return (1);
}

ex03. ft_str_is_numeric

int ft_str_is_numeric(char *str)
{
    int i;

    i = 0;
    while(*(str + i))
    {
        if (!(*(str + i) >= '0' && *(str + i) <= '9'))
            return (0); 
        i++;
    }
    return (1);
}

ex04. ft_str_is_lowercase

int ft_str_is_lowercase(char *str)
{
    int i;

    i = 0;
    while(*(str + i))
    {
        if (!(*(str + i) >= 'a' && *(str + i) <= 'z'))
            return (0); 
        i++;
    }
    return (1);
}

ex05. ft_str_is_uppercase

int ft_str_is_uppercase(char *str)
{
    int i;

    i = 0;
    while(*(str + i))
    {
        if (!(*(str + i) >= 'A' && *(str + i) <= 'Z'))
            return (0); 
        i++;
    }
    return (1);
}

ex06. ft_str_is_printable

int ft_str_is_printable(char *str)
{
    int i;

    i = 0;
    while(*(str + i))
    {
        if (!(*(str + i) >= '0' && *(str + i) <= '127'))
            return (0); 
        i++;
    }
    return (1);
}

ex07. ft_strlowcase

int ft_str_is_uppercase(char c)
{
    if (!(c >= 'A' && c <= 'Z'))
        return (0);
    else
        return (1);
}

char *ft_strlowcase(char *str)
{
    int i;

    i = 0;
    while (*(str + i))
    {
        if (ft_str_is_uppercase(*(str + i)))
            *(str + i) += 32;
        i++;
    }
    return (str);
}

ex08. ft_strupcase

int ft_char_is_lowercase(char c)
{
    if (!(c >= 'a' && c <= 'z'))
        return (0);
    else
        return (1);
}

char *ft_strupcase(char *str)
{
    int i;

    i = 0;
    while (*(str + i))
    {
        if (ft_char_is_lowercase(*(str + i)))
            *(str + i) -= 32;
        i++;
    }
    return (str);
}

ex09. ft_strcapitaliaze

int ft_char_is_lowercase(char c)
{
    if (c >= 'a' && c <= 'z')
        return (1);
    return (0);
}
int ft_char_is_uppercase(char c)
{
    if (c >= 'A' && c <= 'Z')
        return (1);
    return (0);
}

int ft_char_is_numeric(char c)
{
    if (c >= '0' && c <= '9')
        return (1);
    return (0);
}

char ft_charswitchcase(char c)
{
    if (ft_char_is_lowercase(c))
        c -= 32;
    if (ft_char_is_uppercase(c))
        c += 32;
    return (c);
}

char *ft_strcapitalize(char *str)
{
    while (str[i])
    {
        if (ft_char_is_uppercase(str[i]))
            ft_charswitchcase(str[i]);
        if (ft_str_is_lowercase(str[i]))
        {
            if (i == 0)
                ft_charswitchcase(str[i]);
            if (ft_str_is_alpha(str[i - 1] == 0) && ft_str_is_numeric(str[i - 1]) == 0)
                ft_charswitchcase(str[i]);
        }
        i++;
    }
    return (str);
}

ex10. ft_strlcpy

unsigned int    ft_strlcpy(char *dst, char *src, unsigned int size)
{
    int i;

    i = 0;
    while (src[i] && i + 1 < size)
    {
        dest[i] = src[i];
        i++;
    }
    if (size != 0)
        dest[i] = '\0';
    return (i);
}

ex11. ft_putstr_nonprintable

void ft_putchar(char *c)
{
    write(1, &c, 1);
}

int ft_is_nonprintable(char c)
{
    if (c >= 0 && <= 127)
        return (1);
    else
        return (0);
}

void ft_putstr_nonprintable(char *str)
{
    unsigned char *hex;
    unsigned char unchar;
    int i;

    hex = "0123456789abcdef";

    while (str[i])
    {
        unchar = str[i];
        if (ft_is_nonprintable(str[i]))
        {
            ft_putchar('\');
            ft_putchar(hex[unchar / 16]);
            ft_putchar(hex[unchar % 16]);
        }
        ft_putchar(str[i]);
        i++;
    }
}

ex12. ft_print_memory

0개의 댓글