Bonjour,
Voila je me demandais si il existait une fonction du style d'atoi mais ou l'on ne prend qu'une partie de tableau?
Car à moins que je ne me trompe atoi lis tout le tableau jusqu’à arriver au '\0' non?
merci d'avance
Version imprimable
Bonjour,
Voila je me demandais si il existait une fonction du style d'atoi mais ou l'on ne prend qu'une partie de tableau?
Car à moins que je ne me trompe atoi lis tout le tableau jusqu’à arriver au '\0' non?
merci d'avance
La fonction atoi() ignore les espaces avant et s'arrête dès quelle trouve un caractère non numérique.
Il existe aussi la fonction strtol() qui peut indiquer où elle s'est arrêtée de décoder et qui supporte si nécessaire d'autres bases que 10.
Pour s'arrêter après N chiffres même si le suivant est numérique, il y a un format de sscanf().
Bonne idée en effet sscanf() !
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #include <stdio.h> int main(void) { const char tableau[] = "123456"; int convertion = 0; int n = sscanf(tableau, "%4d", &convertion); if (n == 1) { printf("OK: [%d]\n", convertion); } else { puts("Erreur de convertion"); } return 0; }
OK: [1234]
Attention aux faux amis : le verbe convertir permet d'effectuer des conversions !
Je le signale parce qu'après ça se retrouve dans des ihms professionnelles et là, franchement, ça la fout mal (et c'est pas le pire que j'ai pu voir...)
Donc;)Code:
1
2
3
4 else { puts("Erreur de conversion"); }
Ce n'est pas un-faux ami, juste une faute d'orthographe ! :mouarf:
Merci à tous pour vos réponses