fonction width_flag a la norme
This commit is contained in:
1
main.c
1
main.c
@@ -301,6 +301,7 @@ int main(int ac, char **av)
|
|||||||
PRINT("%.0i", 000);
|
PRINT("%.0i", 000);
|
||||||
PRINT("%.0X", 0);
|
PRINT("%.0X", 0);
|
||||||
PRINT("%.i", 0);
|
PRINT("%.i", 0);
|
||||||
|
PRINT("%08i", 33333);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ////////////////////////////////////////////////////////////////// */
|
/* ////////////////////////////////////////////////////////////////// */
|
||||||
|
|||||||
@@ -95,31 +95,21 @@ char *width_flags(char *print, char *s, int width, int zero)
|
|||||||
{
|
{
|
||||||
char *tmp;
|
char *tmp;
|
||||||
char c;
|
char c;
|
||||||
int i;
|
int len;
|
||||||
int j;
|
|
||||||
|
|
||||||
i = 0;
|
len = ft_strlen(print) + zero;
|
||||||
j = 0;
|
|
||||||
if(!(tmp = ft_strnew(width)))
|
if(!(tmp = ft_strnew(width)))
|
||||||
return (NULL);
|
return (NULL);
|
||||||
if (ft_strchr(s, '-'))
|
if (ft_strchr(s, '-'))
|
||||||
{
|
{
|
||||||
if (print[j] == '\0')
|
ft_memmove(tmp, print, len);
|
||||||
tmp[i++] = '\0';
|
ft_memset(tmp + len, ' ', width - len);
|
||||||
while (print[j] != '\0')
|
|
||||||
tmp[i++] = print[j++];
|
|
||||||
while (i < width)
|
|
||||||
tmp[i++] = ' ';
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
c = (ft_strchr(s, '0')) ? '0' : ' ';
|
c = (ft_strchr(s, '0')) ? '0' : ' ';
|
||||||
while (i < (width - ft_strlen(print) - zero))
|
ft_memset(tmp, c, width - len);
|
||||||
tmp[i++] = c;
|
ft_memmove(ft_strchr(tmp, '\0') + zero, print, ft_strlen(print));
|
||||||
if (print[j] == '\0')
|
|
||||||
tmp[i++] = '\0';
|
|
||||||
while (print[j] != '\0')
|
|
||||||
tmp[i++] = print[j++];
|
|
||||||
}
|
}
|
||||||
free(print);
|
free(print);
|
||||||
return (tmp);
|
return (tmp);
|
||||||
|
|||||||
Reference in New Issue
Block a user