ex05 final

This commit is contained in:
tosu 2023-03-29 23:10:43 +02:00
parent 1db4db9d61
commit 5cc9a9fdc5
1 changed files with 47 additions and 39 deletions

View File

@ -1,4 +1,4 @@
#include <unistd.h>
#include <stdio.h>
unsigned int char_count(const char *str, char c)
{
@ -55,11 +55,11 @@ int ft_atoi_base(char *str, char *base)
int index_in_base;
unsigned int base_len;
abs = 0;
sign = 1;
base_len = is_valid_base(base);
if (!base_len)
return (0);
abs = 0;
sign = 1;
while (*str == ' '
|| *str == '\t'
|| *str == '\n'
@ -72,9 +72,10 @@ int ft_atoi_base(char *str, char *base)
if (*str++ == '-')
sign *= -1;
index_in_base = char_index(base, *str);
while (index_in_base)
while (index_in_base >= 0)
{
abs = abs * base_len + index_in_base;
++str;
index_in_base = char_index(base, *str);
}
return (sign * abs);
@ -83,7 +84,7 @@ int ft_atoi_base(char *str, char *base)
#include <stdio.h>
#define BASE10 "0123456789"
#define BASE2 "01"
#define BASE3 "013"
#define BASE3 "012"
#define BASE9 "012345678"
#define BASE11 "0123456789a"
#define BASE16 "0123456789abcdef"
@ -161,6 +162,7 @@ int main(void)
input = " +-+-13"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+-13"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+-13"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
printf("\n");
base = BASE2;
printf("Base: %s\n", base);
@ -194,7 +196,7 @@ int main(void)
input = "1011"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = "1100"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = "1101"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = "2147483647"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = "1111111111111111111111111111111"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " 1101"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " 1101"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " 1101"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
@ -228,6 +230,7 @@ int main(void)
input = " +-+-1101"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+-1101"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+-1101"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
printf("\n");
base = BASE3;
printf("Base: %s\n", base);
@ -295,6 +298,7 @@ int main(void)
input = " +-+-111"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+-111"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+-111"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
printf("\n");
base = BASE9;
printf("Base: %s\n", base);
@ -362,6 +366,7 @@ int main(void)
input = " +-+-13"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+-13"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+-13"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
printf("\n");
base = BASE11;
printf("Base: %s\n", base);
@ -396,39 +401,40 @@ int main(void)
input = "11"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = "12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = "a02220281"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " a1y"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " a1y"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " a1y"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " a1yc"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " a1yc"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " a1yc"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -+a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -+a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -+a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -+-a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -+-a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -+-a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -+-+a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -+-+a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -+-+a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+-a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+-a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+-a1"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " 12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " 12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " 12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " 12y"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " 12y"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " 12y"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " 12yc"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " 12yc"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " 12yc"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -+12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -+12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -+12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -+-12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -+-12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -+-12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -+-+12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -+-+12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " -+-+12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+-12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+-12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+-12"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
printf("\n");
base = BASE16;
printf("Base: %s\n", base);
@ -496,6 +502,7 @@ int main(void)
input = " +-+-d"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+-d"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+-d"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
printf("\n");
base = BASE90;
printf("Base: %s\n", base);
@ -565,4 +572,5 @@ int main(void)
input = " +-+-d"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+-d"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
input = " +-+-d"; printf("Input: <'%s'>, Output: <%d>\n", input, ft_atoi_base(input, base));
printf("\n");
}