void ft_cut_init_p(t_cut *t_v, char **str, int count[3]) { (*t_v).k = 0; (*t_v).diff = 0; (*t_v).p = 0; (*t_v).c = 't'; (*t_v).nbr = 3; (*t_v).c_d = ft_atoi_double(str[count[0]]); (*t_v).check = ft_atoi_ultra(str[count[0]]); (*t_v).flag = check_flag(str, count, &(*t_v).nbr, &(*t_v).c); }
void ft_cut_init_x_maj(t_cut *t_v, t_var **var, char **str, int count[3]) { (*t_v).k = 0; (*t_v).diff = 0; (*t_v).p = 0; (*t_v).c = 't'; (*t_v).nbr = ft_nbrlen(var[count[2]]->u_long); (*t_v).c_d = ft_atoi_double(str[count[0]]); (*t_v).check = ft_atoi_ultra(str[count[0]]); (*t_v).flag = check_flag(str, count, &(*t_v).nbr, &(*t_v).c); str[count[0]] = ft_ntoa_base_un(var[count[2]]->u_long, "0123456789ABCDEF"); (*t_v).nbr = ft_strlen(str[count[0]]); }
void ft_cut_init_d_short(t_cut *t_v, t_var **var, char **str, int count[3]) { (*t_v).k = 0; (*t_v).c = 't'; (*t_v).neg = 0; (*t_v).nbr = ft_nbrlen(var[count[2]]->v_short); (*t_v).flag = check_flag(str, count, &(*t_v).nbr, &(*t_v).c); (*t_v).check = ft_atoi_ultra(str[count[0]]); if ((*t_v).flag == 3500) (*t_v).c_d = ft_atoi_double(str[count[0]]); if (str[count[0]][0] == '.' && var[count[2]]->v_short < 0) (*t_v).nbr--; str[count[0]] = (char *)malloc(sizeof(char) * (*t_v).nbr); str[count[0]] = ft_itoa(var[count[2]]->v_short); if (var[count[2]]->v_short < 0 && str[count[0]][0] != '0') (*t_v).neg = 1; }
int ft_check_if_int(char *nbr) { double d; if (nbr[0] == '-') { if (ft_strlen(nbr) > 11) return (0); } else { if (ft_strlen(nbr) > 10) return (0); } d = ft_atoi_double(nbr); if (d >= -2147483648 && d <= 2147483647) return (1); return (0); }
void attrib_d_char(char **str, t_var **var, int count[3]) { int nbr; int flag; char c; int k; int check; int check_double; int neg; k = 0; c = 't'; neg = 0; nbr = ft_nbrlen(var[count[2]]->carac); flag = check_flag(str, count, &nbr, &c); check = ft_atoi_ultra(str[count[0]]); if (flag == 3500) check_double = ft_atoi_double(str[count[0]]); if (str[count[0]][0] == '.' && var[count[2]]->carac < 0) nbr--; str[count[0]] = ft_ntoa_base(var[count[2]]->carac, "0123456789"); if (var[count[2]]->carac < 0 && str[count[0]][0] != '0') neg = 1; if (flag == 1000 && var[count[2]]->carac >= 0) { neg = 1; str[count[0]] = ft_strjoin("+", str[count[0]]); } else if (flag == 3500) { if (var[count[2]]->carac < 0) { str[count[0]] = ft_strsub(str[count[0]], 1, ft_nbrlen(var[count[2]]->carac) + 1); while (k < check_double - nbr - 1) { str[count[0]] = ft_strjoin("0", str[count[0]]); k++; } k = 0; str[count[0]] = ft_strjoin("-", str[count[0]]); while (k < check - check_double) { str[count[0]] = ft_strjoin(" ", str[count[0]]); k++; } } else { while (k < check_double - nbr) { str[count[0]] = ft_strjoin("0", str[count[0]]); k++; } k = 0; while (k < check - check_double) { str[count[0]] = ft_strjoin(" ", str[count[0]]); k++; } } } else if (flag == 2000 && var[count[2]]->carac >= 0) str[count[0]] = ft_strjoin(" ", str[count[0]]); else if (flag == 4000) { if (var[count[2]]->carac >= 0) str[count[0]] = ft_strjoin("+", str[count[0]]); while (k < check - nbr) { str[count[0]] = ft_strjoin(str[count[0]], " "); k++; } } else if (flag == 3000) { if (var[count[2]]->stars < 0) { while (k > var[count[2]]->stars + nbr - 1) { str[count[0]] = ft_strjoin(str[count[0]], " "); k--; } } else { while (k < var[count[2]]->stars - nbr + 1) { str[count[0]] = ft_strjoin(" ", str[count[0]]); k++; } } } else if (flag != 1 && flag != 1000 && flag != 2000 && flag != 3000 && flag != 4000 && flag != 3500 && flag != 5000) { if (flag < -1 && c != '0') { while (k > flag + nbr + neg) { str[count[0]] = ft_strjoin(str[count[0]], " "); k--; } } else if (flag > 0 && (c == '0' || c == '.')) { if (var[count[2]]->carac < 0) str[count[0]] = ft_strsub(str[count[0]], 1, ft_nbrlen(var[count[2]]->entier) + 1); while (k < flag - nbr - neg) { str[count[0]] = ft_strjoin("0", str[count[0]]); k++; } if (var[count[2]]->carac < 0) str[count[0]] = ft_strjoin("-", str[count[0]]); } else if (flag < -1 && c == '0') { while (k > flag) { str[count[0]] = ft_strjoin("0", str[count[0]]); k--; } } else { while (k < flag - nbr - neg) { str[count[0]] = ft_strjoin(" ", str[count[0]]); k++; } } } count[2]++; }