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

  FORUM HardWare.fr
  Programmation
  C++

  [C] comment attribuer un nombre à un int ... [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] comment attribuer un nombre à un int ... [résolu]

n°241766
Aricoh
gentil mais fo po pousser
Posté le 08-11-2002 à 14:34:57  profilanswer
 

... lorsque le-dit int provient d'un tableau de char ???
 
J'explique.
 
J'ai un fichier à analyser, lequel contient n lignes, chaque ligne contenant des caractères alphanumériques
 
Comme solution à 1ère vue, soit je scanne chaque ligne, caractère par caractère, soit je charge toutes les lignes dans un tableau de char à 2 dimensions mais j'suis pas un pro du C (z'aviez deviné, hein), si j'ai cette ligne là :
 

Code :
  1. akfkjgfjhgfj12dsfkjsdfkjlfj


 
comment puis-je récupérer le 12 qui est noyé en plein milieu pour l'affecter à un short int ???
 
désolé si la question paraît conne, je viens du Perl et en Perl, je sais faire, PAS en C


Message édité par Aricoh le 08-11-2002 à 15:33:16

---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
mood
Publicité
Posté le 08-11-2002 à 14:34:57  profilanswer
 

n°241771
lorill
Posté le 08-11-2002 à 14:40:20  profilanswer
 

ben tu embarques l'interpreteur perl dans ton programme en C :D
 
[jesors]

n°241773
Aricoh
gentil mais fo po pousser
Posté le 08-11-2002 à 14:44:22  profilanswer
 

lorill a écrit a écrit :

ben tu embarques l'interpreteur perl dans ton programme en C :D
[jesors]



A la base, mon prog est censé s'écrire en Perl mais, comme il est destiné à la fois à des users Linux et Windows, le source ne suffira pas. De plus, je ne crois pas que, légalement, je puisse proposer aux users Windows un exe créé via Perl2Exe si je n'ai pas la license de Perl2Exe.
 
Du coup, je fais en C mais c'est là que mes RegExp me font cruellement défaut  :lol:


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
n°241775
lorill
Posté le 08-11-2002 à 14:48:29  profilanswer
 

ah, mais donc en fait ma connerie n'est pas si conne !
je connais pas Perl2Exe, c'est pas libre ? dommage...
 
sinon je connais pas vraiment perl, mais la plupart des interpreteurs peuvent etre integré a un programme C et utilisés dans le programme.  
 
a la limite rien t'empeche de faire des scripts perls qui vont etre executés par ton programme C.

n°241776
djok_fb
C'était mieux avant!
Posté le 08-11-2002 à 14:49:34  profilanswer
 

tu peux peut etre trouvé des trucs pour utiliser les expressions régulières en C...
 
http://www.linuxgazette.com/issue55/tindale.html
 

n°241781
lorill
Posté le 08-11-2002 à 14:52:18  profilanswer
 

Embed Perl in your projects
 
cela dit, ca n'est pas la meilleure solution pour recuperer le 12 au milieu de la chaine, mais vu que t'es un perl addict, ca peut toujours servir.

n°241782
Aricoh
gentil mais fo po pousser
Posté le 08-11-2002 à 14:52:27  profilanswer
 

lorill a écrit a écrit :

ah, mais donc en fait ma connerie n'est pas si conne !
je connais pas Perl2Exe, c'est pas libre ? dommage...



 
Perl2Exe est un shareware, j'ai une version d'évaluation qui génère un Exe mais y a un message en fin de programme qui s'affiche dans la fenêtre Dos, comme quoi le prog a été généré par une version d'éval et qu'il ne doit en aucun cas être distribué.
 
Autre pb avec Perl2Exe, l'exe constitué fait facilement 1 Mo en taille car il intègre certaines dll de la distribution Perl + les librairies dont mon prog aurait besoin, donc pas good.
 

lorill a écrit a écrit :

a la limite rien t'empeche de faire des scripts perls qui vont etre executés par ton programme C.



 
Oui mais faut que les gens aient Perl, ce dont je dois éviter. Télécharger Perl = download d'environ 30 Mo, la majorité des users est en RTC ...


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
n°241787
xilebo
noone
Posté le 08-11-2002 à 15:06:04  profilanswer
 

tu peux programmer un parser assez simple ... pour chacune de tes lignes tu parcoures les caracteres, si tu rencontres un chiffre , tu stokes dans un buffer temporaire ce chiffre et tout ceux directement apres et ensuite su fait un atoi de ton buffer temporaire  pour obtenir un int

n°241794
Aricoh
gentil mais fo po pousser
Posté le 08-11-2002 à 15:17:15  profilanswer
 

xilebo a écrit a écrit :

tu peux programmer un parser assez simple ... pour chacune de tes lignes tu parcoures les caracteres, si tu rencontres un chiffre , tu stokes dans un buffer temporaire ce chiffre et tout ceux directement apres et ensuite su fait un atoi de ton buffer temporaire  pour obtenir un int



Ah ok, j'ignorais qu'avec un atoi(), je pouvais récupérer la string en int, merci  :jap: !
 
je venais de trouver une solution de brute  :D :
 
soit tablo un tableau de char ne contenant QUE mon exemple, donc 12 et que toto soit mon int récupérant le nombre à la fin :

Code :
  1. if ( (strlength(tablo)) == 2)
  2.     toto = tablo[0] * 10 + tablo[1]
  3. else
  4.     return -1; /* grosse cacade ! */


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
n°241797
Aricoh
gentil mais fo po pousser
Posté le 08-11-2002 à 15:19:02  profilanswer
 

Aricoh a écrit a écrit :

Ah ok, j'ignorais qu'avec un atoi(), je pouvais récupérer la string en int, merci  :jap: !
 
je venais de trouver une solution de brute  :D :
 
soit tablo un tableau de char ne contenant QUE mon exemple, donc '1','2','\0' et que toto soit mon int récupérant le nombre à la fin :

Code :
  1. if ( (strlength(tablo)) == 3)
  2.     toto = tablo[0] * 10 + tablo[1];
  3. else
  4.     return -1; /* grosse cacade ! */






 
Edit : z'avions oublié que le '\0' compte comme élément dans un tableau (me trompe-je ?)


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
mood
Publicité
Posté le 08-11-2002 à 15:19:02  profilanswer
 

n°241802
xilebo
noone
Posté le 08-11-2002 à 15:23:18  profilanswer
 

Aricoh a écrit a écrit :

Ah ok, j'ignorais qu'avec un atoi(), je pouvais récupérer la string en int, merci  :jap: !
 
je venais de trouver une solution de brute  :D :
 
soit tablo un tableau de char ne contenant QUE mon exemple, donc 12 et que toto soit mon int récupérant le nombre à la fin :

Code :
  1. if ( (strlength(tablo)) == 2)
  2.     toto = tablo[0] * 10 + tablo[1]
  3. else
  4.     return -1; /* grosse cacade ! */






 
bah regarde le code d atoi , en gros c est ce qu il fait ..

n°241814
Aricoh
gentil mais fo po pousser
Posté le 08-11-2002 à 15:31:32  profilanswer
 

xilebo a écrit a écrit :

 
 
bah regarde le code d atoi , en gros c est ce qu il fait ..



ok ça roule, je suis sauvé, ouf !


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO

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

  [C] comment attribuer un nombre à un int ... [résolu]

 

Sujets relatifs
[Resolu][Java][Client/Server]M ode Console - Pkoi s attendent ils ?[Php/MySQL] - SELECT MAX(.. et GROUP BY, ca va pas :( [RESOLU!!!]
Nombre de tuple dans un curseur?"Cannot send session cache limiter - headers already sent" [Resolu]
[PHP] Nombre d'occurences d'un mot dans une chaine de caractères[JAVA] obtenir la précision voulue pour un nombre....
Problème socket et saut de ligne [Résolu]Variable Globale? comprend pas... [RESOLU]
[C/C++] Générer un nombre aléatoire[ JS ] générer un nombre aléatoire et probleme de tableau ( var )
Plus de sujets relatifs à : [C] comment attribuer un nombre à un int ... [résolu]


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