Convertir un char en const char* ? - C++ - Programmation
Marsh Posté le 04-08-2003 à 15:56:21
int nb=5;
char tab[1];
itoa(nb,tab,10);
tab est ton pointeur.
C'est un truc comme ca que tu veux?
Marsh Posté le 04-08-2003 à 15:59:17
yep sauf que j'ai pas itoa
c'est pas grave v me demander en ajoutant 48, et en settant char tab[0] a la valeur de mon caractere et tab[1] a '\0'
Marsh Posté le 04-08-2003 à 16:01:22
Un truc du genre
Code :
|
Marsh Posté le 04-08-2003 à 16:02:03
polo021 a écrit : _itoa peut etre |
itoa (_ ou pas) n est pas une fonction dispo suivant plateforme/compilo
Marsh Posté le 04-08-2003 à 16:04:04
VisualC++ a écrit : |
savais pas
Marsh Posté le 04-08-2003 à 16:04:06
Y a un seul caractère tu dis ? Un nombre entre 0 et 9 donc ? c'est plus simple comme ça :
int n;
char c;
n = 8;
c = '0' + n;
Marsh Posté le 04-08-2003 à 16:05:00
antp a écrit : Y a un seul caractère tu dis ? Un nombre entre 0 et 9 donc ? c'est plus simple comme ça : |
il faut transformer de l'entier vers le caractere
Marsh Posté le 04-08-2003 à 16:17:00
C'est ce que je fais, non ?
edit: oups, j'avais pas vu que mon 8 était entre guillemets, sorry, c'était une faute de frappe
Marsh Posté le 04-08-2003 à 16:17:06
Spas vrai ça et sprintf ça vous dit rien les gars?
En plus c du c++ donc tu utilise string et sstream, y a déjà un exemple dans un topic qui traine négligeament dans la dite section c++
Marsh Posté le 04-08-2003 à 16:18:30
LetoII a écrit : Spas vrai ça et sprintf ça vous dit rien les gars? |
Je plussoie ; j'ai beau être une sous-tanche en C++, c'est l'premier truc auquel j'aurais pensé
Marsh Posté le 04-08-2003 à 16:18:35
- sprintf pour un seul chiffre, c'est pas super utile
- c'est vrai que c'est mieux que itoa mais vu la question de base...
Marsh Posté le 04-08-2003 à 16:19:11
antp a écrit : C'est ce que je fais, non ? |
ben non toi tu convertis un char en entier il me semble mais le monsieur il a dit
Citation : int en char* |
bon c'est joce
Marsh Posté le 04-08-2003 à 16:19:42
antp a écrit : - sprintf pour un seul chiffre, c'est pas super utile |
Ben c quand même plus propre, et puis CF mon edit pour le c++
Marsh Posté le 04-08-2003 à 16:21:47
antp a écrit : - sprintf pour un seul chiffre, c'est pas super utile |
Ba c'est p'têt un seul chiffre mais la question c'est "convertir un entier vers un char *" pas "convertir un entier vers un char"
Marsh Posté le 04-08-2003 à 16:22:31
putain mais je vais tous vous tuer!!!!!!!!!!
Joce n'écoute rien. et PM moi si t'as des problèmes par ce que là j'ai envi de bricer tout le monde
Marsh Posté le 04-08-2003 à 16:23:21
polo021 a écrit : |
bordel il fait trop chaud là
ce que je voulais faire :
int n;
char c;
n = 8;
c = '0' + n;
à la place de c on peut mettre s[0] où s est un char * de plus de 1 octet.
bon sinon en effet il y a sprintf/snprintf, mais c'est bcp pour un truc qu'on peut convertir avec juste une addition je trouve
Marsh Posté le 04-08-2003 à 16:24:55
Taz a écrit : putain mais je vais tous vous tuer!!!!!!!!!! |
Le truc de faire + '0' spa bien ?
Marsh Posté le 04-08-2003 à 16:26:32
antp a écrit : |
En même temps j'ai l'impression que tt le monde a compris un truc différent
Et puis moi quand il fait plus de 25° dans une pièce je fonctionne plus qu'à 10% de mes capacités
Marsh Posté le 04-08-2003 à 16:30:48
antp a écrit : |
t'es sur que c'est ca que tu voulais faire? Ou alors c'est moi qui me trompe cette fois ci
Marsh Posté le 04-08-2003 à 16:37:54
polo021 a écrit : |
bordel poster sur ce forum quand il fait chaud ça me réussit pas
le 8 devait pas être entre guillemets évidemment
Marsh Posté le 04-08-2003 à 16:39:06
antp a écrit : |
Les informaticiens, c comme les ordi, ça aime pas le chaud
Marsh Posté le 04-08-2003 à 16:45:00
me suis contenter de faire ca finalement :
const char str_type = 48 + (int) type;
char vioType[2];
vioType[0] = str_type;
vioType[1] = '\0';
Marsh Posté le 04-08-2003 à 16:50:18
'0' c'est trop propre à ton goût ?
Marsh Posté le 04-08-2003 à 19:35:51
toujours est il que pour faire int -> char* (et pas que 1 chiffre) le plus simple / rapide / standard ca reste le sprintf
Marsh Posté le 04-08-2003 à 19:38:13
(j'ai vraiment le bouton dessus là)
Citation : bon je sais pas ce qu'on t'as conseillé, en tout cas, c'est mauvais. n'utilise pas/jamais des char* en C++, tu vas le regrette des que tu vas devoir faire des copies, comparaisons modifications. |
Marsh Posté le 04-08-2003 à 20:07:02
philou_a7 a écrit : toujours est il que pour faire int -> char* (et pas que 1 chiffre) le plus simple / rapide / standard ca reste le sprintf |
snprintf ! Il y a assez de trou de sécurité dans le monde, ce n'est pas la peine d'en ajouter encore.
Marsh Posté le 04-08-2003 à 23:52:27
antp a écrit : |
nan c'est juste que c'est des int à la base, donc avec 48 ca me permet d'avoir le char correspondant au numéro
Marsh Posté le 04-08-2003 à 23:57:13
bah oui mais '0' c'est pas mieux que 48 tu trouves, niveau propreté du code ?
Marsh Posté le 05-08-2003 à 00:12:25
ReplyMarsh Posté le 05-08-2003 à 10:54:34
ReplyMarsh Posté le 05-08-2003 à 12:48:06
ReplyMarsh Posté le 05-08-2003 à 12:50:48
ReplyMarsh Posté le 05-08-2003 à 12:53:45
LetoII a écrit : |
non, je veux dire que le cas de l'ASCII ou les '0'..'9' sont contigus et dans cet ordre est un cas particulier. dois y avoir des normes ou ils sont dispersé ou bien dans l'ordre décroissant
Marsh Posté le 05-08-2003 à 12:56:35
Taz a écrit : non, je veux dire que le cas de l'ASCII ou les '0'..'9' sont contigus et dans cet ordre est un cas particulier. dois y avoir des normes ou ils sont dispersé ou bien dans l'ordre décroissant |
J'avais bien compris, j'essayé juste de faire un brin d'humour. J'ajouterai que si l'éditeur que tu utilise pour tapper ton code n'utilise pas le même encodage que le système ça peut faire des trucs rigolo (faudra que je test ça un de ces jours)
Marsh Posté le 05-08-2003 à 13:06:30
Comme l'EBCDIC où y a des "trous" dans les lettres
Marsh Posté le 05-08-2003 à 15:13:59
Citation : ben niveau portabilité c'est zéro. |
Par rapport à 48, je dirais que c'est 0.5
Marsh Posté le 04-08-2003 à 15:53:18
J'aimerais convertir un char en const char*, mais le probleme c'est que j'ai un peu de mal
(en fait a la base je veux convertir un int en char*, mais comme y a qu'un seul caractere, je passe par un char).
Any idea ?