Les variables en C++ VoirLes variables en C++
1. Les différents types de variables
1.1 bool
1.2 char
1.3 unsigned short int
1.4 short int
1.5 unsigned long int
1.6 long int
1.7 int (16 bits)
1.8 int (32 bits)
1.9 unsigned int (16 bits)
1.10 unsigned int (32...
Langage C++ - Les types de données VoirLes types de données
Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Langage C - Les types de données VoirLes types de données
Les données manipulées en langage C sont typées, c'est-à-dire
que pour chaque donnée que l'on utilise (dans les variables par exemple)
il faut préciser le type de donnée, ce qui permet de connaître l'occupation mémoire
(le...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ?
Une chaîne de caractères (appelée string en anglais) est une suite de caractères,
c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII.
En langage C, une chaîne...
Atoi prends 3 arguments
le premier est la chaine de caractere a transformer en int
le deuxieme est un pointeur de test de fin
( a tester s'il est egal a '\0' mais pas dans tous les cas, depends de la chaine donnée )
le 3eme est la base dans laquelle la chaine est rentrée
( 2 binaire / 8 octal / 10 decimal / 16 hexadecimal / ... etc )
elle retourne un int resultant de la chaine
exemple :
char *plop = "12354pala";
int test;
char *fin;
test = atoi(plop,&fin,10);
printf("%s %c %d\n",plop,*fin,test); // affiche 12354pala p 12354
Cette fonction n'est pas appreciée du fait qu'en cas d'erreur elle retourne 0 ( si ma memoire est bonne )
... qui peut etre interprété comme un resultat valide ...
c'est pourquoi on utilise strtol qui prends les meme arguments mais qui gere les erreur ( via errno ^^ )
apres la reponse de KX devrait fonctionnée mais n'est pas dite portable
car il est nulle part mentionné que les chiffres se suivent en informatique
apres tu peux toujours copier ton char dans une chaine de 2char que tu fini par '\0'
et que tu envoies a strtol
Que faire dans mon cas alors...? Je n'ai pas le choix mon tableau de départ doit être en char et je dois effectuer des calculs simples avec les "nombres" de type char de ce tableau pour ensuite mettre le résultat dans ce tableau.
Tu peux transformer un int en char* grace a sprintf
sprintf(char *destination, char *format, ...);
fonctionne comme printf & co sauf que le 1ere argument est la chaine de caractere ou sera stocké la chaine formatée.
exemple :
char buf[50];
int i = 120;
sprintf(buf,"%d",i); // buf = {'1','2','0','\0',...}