ex05 final
This commit is contained in:
parent
1db4db9d61
commit
5cc9a9fdc5
|
@ -1,4 +1,4 @@
|
||||||
#include <unistd.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
unsigned int char_count(const char *str, char c)
|
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;
|
int index_in_base;
|
||||||
unsigned int base_len;
|
unsigned int base_len;
|
||||||
|
|
||||||
|
abs = 0;
|
||||||
|
sign = 1;
|
||||||
base_len = is_valid_base(base);
|
base_len = is_valid_base(base);
|
||||||
if (!base_len)
|
if (!base_len)
|
||||||
return (0);
|
return (0);
|
||||||
abs = 0;
|
|
||||||
sign = 1;
|
|
||||||
while (*str == ' '
|
while (*str == ' '
|
||||||
|| *str == '\t'
|
|| *str == '\t'
|
||||||
|| *str == '\n'
|
|| *str == '\n'
|
||||||
|
@ -72,9 +72,10 @@ int ft_atoi_base(char *str, char *base)
|
||||||
if (*str++ == '-')
|
if (*str++ == '-')
|
||||||
sign *= -1;
|
sign *= -1;
|
||||||
index_in_base = char_index(base, *str);
|
index_in_base = char_index(base, *str);
|
||||||
while (index_in_base)
|
while (index_in_base >= 0)
|
||||||
{
|
{
|
||||||
abs = abs * base_len + index_in_base;
|
abs = abs * base_len + index_in_base;
|
||||||
|
++str;
|
||||||
index_in_base = char_index(base, *str);
|
index_in_base = char_index(base, *str);
|
||||||
}
|
}
|
||||||
return (sign * abs);
|
return (sign * abs);
|
||||||
|
@ -83,7 +84,7 @@ int ft_atoi_base(char *str, char *base)
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#define BASE10 "0123456789"
|
#define BASE10 "0123456789"
|
||||||
#define BASE2 "01"
|
#define BASE2 "01"
|
||||||
#define BASE3 "013"
|
#define BASE3 "012"
|
||||||
#define BASE9 "012345678"
|
#define BASE9 "012345678"
|
||||||
#define BASE11 "0123456789a"
|
#define BASE11 "0123456789a"
|
||||||
#define BASE16 "0123456789abcdef"
|
#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));
|
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;
|
base = BASE2;
|
||||||
printf("Base: %s\n", base);
|
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 = "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 = "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 = "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));
|
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));
|
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;
|
base = BASE3;
|
||||||
printf("Base: %s\n", base);
|
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));
|
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;
|
base = BASE9;
|
||||||
printf("Base: %s\n", base);
|
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));
|
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;
|
base = BASE11;
|
||||||
printf("Base: %s\n", base);
|
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 = "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 = "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 = "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 = " 12"; 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 = " 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 = " a1y"; 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 = " a1y"; 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 = " a1y"; 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 = " a1yc"; 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 = " a1yc"; 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 = " a1yc"; 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 = " +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 = " +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 = " +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 = " -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 = " -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 = " -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 = " -+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 = " -+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 = " -+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 = " +-+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 = " +-+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 = " +-+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 = " +-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 = " +-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 = " +-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 = " -+-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 = " -+-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 = " -+-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 = " -+-+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 = " -+-+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 = " -+-+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 = " +-+-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 = " +-+-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 = " +-+-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));
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
base = BASE16;
|
base = BASE16;
|
||||||
printf("Base: %s\n", base);
|
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));
|
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;
|
base = BASE90;
|
||||||
printf("Base: %s\n", base);
|
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));
|
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");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue