Ah bah je viens enfin de comprendre la différence entre ++b et b++... moi qui croyais que b++, ça incrémentait d'abord b avant de faire les opérations...
Sacrée erreur...
Je comprends mieux certains bugs incompréhensibles que j'ai rencontrés...
Je te remercie de ta réponse, la différence entre ++b et b++ est très claire avec cet exemple.
Ceci va mettre a l'indice b+1 (donc 9) un '\n' et b serai toujours equivalent a 8.
Donc dans ce cas de figure, la valeur de b de change pas.
Dès lors, ce genre de boucle peut être simplifiée :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| int save_d = 0;
for (d = 0; d < COMPTER_CH(pathKey); d++)
{
if (pathKey[d] == '\\')
{
save_d = d;
d++;
if (pathKey[d] == '|')
{
d++;
if(pathKey[d] == '*')
{
d++;
if(pathKey[d] == '|')
{
if ((buffer = copier_ch(pathKey)) != NULL)
{
pathKey[save_d] = '\0';
if((endKey = malloc(COMPTER_CH(buffer)+1-save_d-5)) != NULL)
{
c = 0;
for (a = save_d+5; a < COMPTER_CH(buffer); a++)
{
endKey[c] = buffer[a];
c++;
}
endKey[c] = '\0';
break;
}
}
}
}
}
else
{
d = save_d;
}
}
}
d = 0;a = 0;c = 0;save_d = 0; |
Quelque chose comme ça serait-il juste ?
if (pathKey[d] == '\\' && pathKey[d+1] == '|' && pathKey[d+2] == '*' etc. )
Partager