Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1543 connectés 

  FORUM HardWare.fr
  Programmation
  C

  comment convertir un char en int ??

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

comment convertir un char en int ??

n°479240
morphleus
Posté le 06-08-2003 à 19:22:42  profilanswer
 

voilà tout est dans la question.
Je ne sais pas comment convertir un char en int ou float en C.
J'ai essayé par affectation simple et ca ne me donne pas la valeur escompté.
A l'aide...

mood
Publicité
Posté le 06-08-2003 à 19:22:42  profilanswer
 

n°479253
antp
Super Administrateur
Champion des excuses bidons
Posté le 06-08-2003 à 20:02:51  profilanswer
 

Y a quoi dans ton char ? Tu veux avoir quoi comme genre de résultat ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°479255
Taz
bisounours-codeur
Posté le 06-08-2003 à 20:07:50  profilanswer
 

regarde du coté de la fonction du recherche du forum et tapes y s(n)printf/sscanf

n°479264
theshockwa​ve
I work at a firm named Koslow
Posté le 06-08-2003 à 20:29:31  profilanswer
 

char ou char * ? :heink:


Message édité par theshockwave le 06-08-2003 à 20:29:54

---------------
last.fm
n°480193
morphleus
Posté le 07-08-2003 à 17:31:20  profilanswer
 

je vais tout vous expliquez.
Alors je prends une chaine de caractère dans un fichier texte que je mets dans un pointeur.
Mais maintenant j'ai besoin de récupérer des valeurs dans cette chaine de caractères pour faire des opération dessus (opération numérique). donc je pensais que de faire un truc de ce style allait marcher:
float a;
char *b;
a=a+(int)b[1]*10;
 
mais en fait ca marche pas (bon j'ai fait tout le malloc et tout y a pas de pb c juste pour vous montrez l'essentiel)
voilà là je pense que je vous ai tout donné comme explication.

n°480196
polo021
Posté le 07-08-2003 à 17:33:49  profilanswer
 

atoi

n°480199
pilou51
Posté le 07-08-2003 à 17:36:08  profilanswer
 
n°480200
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-08-2003 à 17:36:47  profilanswer
 

si ce sont des chiffres ASCII de 0 à 9 dans tes char; tu fais juste n = c - '0', où n = entier et c = char


Message édité par antp le 07-08-2003 à 17:36:58

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°480203
morphleus
Posté le 07-08-2003 à 17:38:58  profilanswer
 

ben dans ma chaine y a pas que des chiffres mais ce que je veux récupérer sont seulement des chiffres en effet

n°480207
Taz
bisounours-codeur
Posté le 07-08-2003 à 17:42:05  profilanswer
 

mais quelle bande de blaireaux... foutez dans /dev/null votre atoi. utilise sscanf !!!

mood
Publicité
Posté le 07-08-2003 à 17:42:05  profilanswer
 

n°480212
polo021
Posté le 07-08-2003 à 17:45:52  profilanswer
 

morphleus a écrit :

ben dans ma chaine y a pas que des chiffres mais ce que je veux récupérer sont seulement des chiffres en effet


tu balayes ta chaine et quand tu trouve un chiffre tu fais *10+(le caractere -'0')

n°480213
Taz
bisounours-codeur
Posté le 07-08-2003 à 17:49:04  profilanswer
 

polo021 a écrit :


tu balayes ta chaine et quand tu trouve un chiffre tu fais *10+(le caractere -'0')

tu sais comment je réagis à la provoc... je n'ai aucun humour sur les sujets que vous connaissez  :o

n°480215
morphleus
Posté le 07-08-2003 à 17:50:43  profilanswer
 

elle marche nikel avec le - '0' fallait y pensezr quand meme.

n°480216
Taz
bisounours-codeur
Posté le 07-08-2003 à 17:51:48  profilanswer
 

morphleus a écrit :

elle marche nikel avec le - '0' fallait y pensezr quand meme.

[:ban]

n°480217
polo021
Posté le 07-08-2003 à 17:52:10  profilanswer
 

Taz a écrit :

tu sais comment je réagis à la provoc... je n'ai aucun humour sur les sujets que vous connaissez  :o  

:heink:

n°480220
Taz
bisounours-codeur
Posté le 07-08-2003 à 17:53:43  profilanswer
 

tu plaisantes avec tes histoires -'0' j'espère...

n°480221
polo021
Posté le 07-08-2003 à 17:54:30  profilanswer
 

heu....
 
propose donc ta solution alors [:spamafote]
 
EDIT : j'espere que t'as vu que le monsieur avait ecrit

Citation :

ben dans ma chaine y a pas que des chiffres


Message édité par polo021 le 07-08-2003 à 17:55:15
n°480224
Taz
bisounours-codeur
Posté le 07-08-2003 à 17:57:36  profilanswer
 

sscanf & [:quoted]


Message édité par Taz le 07-08-2003 à 17:57:46
n°480225
Angel_Doog​las
Le dernier des humains
Posté le 07-08-2003 à 17:57:42  profilanswer
 

polo021 a écrit :

heu....
 
propose donc ta solution alors [:spamafote]
 
EDIT : j'espere que t'as vu que le monsieur avait ecrit

Citation :

ben dans ma chaine y a pas que des chiffres




 
Et alors?
sscanf est ce qu'il lui faut.


---------------
You have the right to remain silent. You are warned that anything you say can will be taken down used as evidence against you///Il n'y a pas de théorie de l'évolution. Juste une liste d'espèces que Chuck Norris autorise à survivre.
n°480226
Taz
bisounours-codeur
Posté le 07-08-2003 à 17:58:30  profilanswer
 

quelqu'un est capable de comprendre pourquoi ato? sont des fonctions à proscrire?

n°480227
polo021
Posté le 07-08-2003 à 18:00:00  profilanswer
 

je savais pas que sscanf ne gardait que le chiffres.

n°480228
Taz
bisounours-codeur
Posté le 07-08-2003 à 18:00:52  profilanswer
 

polo021 a écrit :

je savais pas que sscanf ne gardait que le chiffres.
 

:heink:

n°480229
polo021
Posté le 07-08-2003 à 18:03:41  profilanswer
 


ben oui [:spamafote]
si il a une string "35h9.34"
comment tu vas faire ton sscanf pour qu'il te resorte 35934 ????

n°480230
Taz
bisounours-codeur
Posté le 07-08-2003 à 18:04:25  profilanswer
 

et comment tu fais avec atoi? là n'est pas là question du tout

n°480232
polo021
Posté le 07-08-2003 à 18:08:01  profilanswer
 

Taz a écrit :

et comment tu fais avec atoi? là n'est pas là question du tout

:pfff:  
 
relis donc le topic en entier :o
 
Quand j'ai propose la solution atoi, il n'avait pas encore precise qu'il y avait d'autres caracteres dans sa chaine que 0-9.
Et apres j'ai propose

Citation :

tu balayes ta chaine et quand tu trouve un chiffre tu fais *10+(le caractere -'0')


Tandis que toi tu n'as toujours propose que sscanf meme sans dire comment on s'en sert dans ce cas precis  :pfff:

n°480237
*syl*
--> []
Posté le 07-08-2003 à 18:10:22  profilanswer
 

Taz a écrit :

quelqu'un est capable de comprendre pourquoi ato? sont des fonctions à proscrire?

Parce qu'y a pas de gestion d'erreurs :o


Message édité par *syl* le 07-08-2003 à 18:10:31
n°480239
*syl*
--> []
Posté le 07-08-2003 à 18:11:28  profilanswer
 

polo021 a écrit :

Tandis que toi tu n'as toujours propose que sscanf meme sans dire comment on s'en sert dans ce cas precis  :pfff:  

Pkoi il devrait dire comment on se sert de cette fonction :heink:  
Tu lis l'aide et basta :o

n°480244
morphleus
Posté le 07-08-2003 à 18:14:45  profilanswer
 

merci pour toutes vos explications ca m'a bien aidé

n°480247
polo021
Posté le 07-08-2003 à 18:16:03  profilanswer
 

L'aide ne m'aide pas, je reste sur ma faim. [:zion]

n°480364
MagicBuzz
Posté le 07-08-2003 à 20:31:22  profilanswer
 

Bah suffit de faire un sscanf(regexp(lachaine, pattern_nettoyeur_qui_garde_que_les_chiffres)) et zou :)
 
PS: c'est certainement pas "regexp" la fonction en C, et pas forcément la bonne syntaxe, mais c'est un algo simple et efficace.

n°480371
Taz
bisounours-codeur
Posté le 07-08-2003 à 20:38:36  profilanswer
 

pas besoin de pattern nettoyeur.
 
suffit de parcourir la chaine, et chaque caractère qui valide int isdigit(int c) (de <ctype.h> ), tu le rajoutes dans ton buffer, et apres, effectivement, sscanf

n°480400
MagicBuzz
Posté le 07-08-2003 à 20:58:23  profilanswer
 

Taz a écrit :

pas besoin de pattern nettoyeur.
 
suffit de parcourir la chaine, et chaque caractère qui valide int isdigit(int c) (de <ctype.h> ), tu le rajoutes dans ton buffer, et apres, effectivement, sscanf


Ouais, mais les regexp étant très performantes, chais pas ce qui est le mieu.

n°480409
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-08-2003 à 21:04:13  profilanswer
 

Y a pas de regexpr dans les librairies C standard il me semble


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°480412
Taz
bisounours-codeur
Posté le 07-08-2003 à 21:07:21  profilanswer
 

MagicBuzz a écrit :


Ouais, mais les regexp étant très performantes, chais pas ce qui est le mieu.

t'as vu ça ou? je vois pas ce qu'on peut faire de mieux qu'un pauvre parcours linénaire...


Message édité par Taz le 07-08-2003 à 21:07:45
n°480413
Taz
bisounours-codeur
Posté le 07-08-2003 à 21:07:33  profilanswer
 

antp a écrit :

Y a pas de regexpr dans les librairies C standard il me semble

y a pas

n°480463
MagicBuzz
Posté le 07-08-2003 à 21:54:21  profilanswer
 

ben par exemple, pour remplacer des sous-chaînes par des autres (donc parcours linéaire basique) un regexp peut être jusqu'à 2 fois plus rapide.
 
(bon, d'un autre côté, ce chiffre est tiré de la doc de vb, qui est pas très rapide pour ce qui est des traîtements de chaînes :D)


Message édité par MagicBuzz le 07-08-2003 à 21:55:19
n°480470
Taz
bisounours-codeur
Posté le 07-08-2003 à 21:58:53  profilanswer
 

réfléchis un peu, par ce que je vois mal comment une regex peut faire mieux qu'un parcours linéaire... et la copie qui va avec...

n°480475
MagicBuzz
Posté le 07-08-2003 à 22:07:44  profilanswer
 

bah ça dépend comment est codée ta "isDigit()" par exemple.


Message édité par MagicBuzz le 07-08-2003 à 22:07:58
n°480477
Taz
bisounours-codeur
Posté le 07-08-2003 à 22:10:39  profilanswer
 

MagicBuzz a écrit :

bah ça dépend comment est codée ta "isDigit()" par exemple.

:heink:

n°480478
MagicBuzz
Posté le 07-08-2003 à 22:13:01  profilanswer
 

bah y'a 50 façon de coder une fonction aussi basique, et notamment les fonctions style regexp sont très souvent ultra optimisée, genre y'a pas une ligne de code dedans, y'a que de l'asm, sans le moindre cycle superflu

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  comment convertir un char en int ??

 

Sujets relatifs
Convertir un char en const char* ?Convertir une chaine char* en hexa en entier [Résolu]
convertir un char en int sans tomber sur le code ascii[[C]]Comment convertir un int en char???
convertir un t_wchar en char?!Convertir char[]
[c] Comment convertir un entier en char ...[JS]je doit convertir un int en char, comment faire?
Comment convertir long int -> chaine de char ?[c++] Est il possible de convertir une CString en Char ou vice versa?
Plus de sujets relatifs à : comment convertir un char en int ??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR