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

  FORUM HardWare.fr
  Programmation
  C++

  passer d'un nombre en hexa en caractère ASCII

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

passer d'un nombre en hexa en caractère ASCII

n°271709
helvetik
Posté le 17-12-2002 à 18:35:28  profilanswer
 

Bonjour a tous!
 
Je cherche une fonction qui me permettrais de convertir un nombre hexa ou décimal en caractère ascii.  
But, comparer un caractère avec un entier:
if (65==a)

mood
Publicité
Posté le 17-12-2002 à 18:35:28  profilanswer
 

n°271711
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 17-12-2002 à 18:36:41  profilanswer
 

if ('a' == 65)


---------------
du bon usage de rand [C] / [C++]
n°271714
helvetik
Posté le 17-12-2002 à 18:44:18  profilanswer
 

merde, c aussi con ke ca!!
ben merci bien :hello:  
 
mais si ce caractère se trouve dans une chaine?
 
chaine[i]==65
 
??


Message édité par helvetik le 17-12-2002 à 19:49:09
n°271782
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 17-12-2002 à 20:10:34  profilanswer
 

pareil. amis quel interet de comparer avec le code ascii, compare directement avec le cararctère 'c'


---------------
du bon usage de rand [C] / [C++]
n°271798
helvetik
Posté le 17-12-2002 à 20:46:47  profilanswer
 

Taz@PPC a écrit :

pareil. amis quel interet de comparer avec le code ascii, compare directement avec le cararctère 'c'


l'interet, c ke je voudrais tester le caractère de ma chaine avec tout l'alphabet, du caractère 65 a 90 et 97 a 122, donc, avec une boucle FOR, je pourrais le faire très facilement...
sinon, je pourrais mettre tous les caractère de l'alphabet dans un tableau, mais bon....

n°271800
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 17-12-2002 à 20:49:16  profilanswer
 

ben tu fais for(char c='a'; c!='z'+1; ++c) tout simplement
 
d'un autre coté ça n'ai pas portable, mais bon c'est juste pour le signaler [:dawa] n'est ce pas musaran  ;)


---------------
du bon usage de rand [C] / [C++]
n°271806
helvetik
Posté le 17-12-2002 à 20:56:26  profilanswer
 

Taz@PPC a écrit :

ben tu fais for(char c='a'; c!='z'+1; ++c) tout simplement
 
d'un autre coté ça n'ai pas portable, mais bon c'est juste pour le signaler [:dawa] n'est ce pas musaran  ;)  


tien je ne connaissais pas cette manip avec la boucle for...
 
en fait je veux tester chaque caractère de ma chaine avec tout l'alphabet.
je pensais avec un for imbriquer du style:

Code :
  1. for (i=0; i<=longueur_de_chaine; i++)
  2. {
  3.   for (i2=65;i2<90;i2++)
  4.   {
  5.     if (chaine[i]== au caractère ascii correspondant a i2)
  6.       <instruction>
  7.   }
  8. }


 
donc en fait ce ke je cherche à coder:

Code :
  1. au caractère ascii correspondant a i2


edit:
c koi un musaran??


Message édité par helvetik le 17-12-2002 à 21:00:14
n°271869
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-12-2002 à 23:12:16  profilanswer
 

helvetik a écrit :


c koi un musaran??


[:rofl]


---------------
J'ai un string dans l'array (Paris Hilton)
n°271876
*syl*
--&gt; []
Posté le 17-12-2002 à 23:48:09  profilanswer
 

helvetik a écrit :


c koi un musaran??

:lol:  :lol:  :lol: [:xp1700]

n°271906
Musaran
Cerveaulté
Posté le 18-12-2002 à 05:48:57  profilanswer
 

C'est un gars qui traine sur le forum...  :D  
 
C'est juste parce qu'il y a un concours entre Taz et moi sur ce qui est accepté par le standard du C/C++ et ce qui est mal.
En l'occurence, "for(char c='a'; c!='z'+1; ++c)" suppose que les caractères 'a' à 'z' sont adjacents et en ordre croissant en mémoire, ce qui n'est nullement garanti.
Bon, on va faire comme si...
 
Un caractère 'a' utilisé comme son code (65 en ASCII/ANSI) dans la table de caractères, c'est tout à fait standard, et très fortement préférable aux code supposé en littéral.
 
Il est peu probable que tu aie vraiment besoin d'une boucle pour parcourir l'alphabet.

Code :
  1. for (i=0; i<=longueur_de_chaine; i++){
  2. switch(chaine[i]){
  3.  case 'a':
  4.  case 'e':
  5.  case 'i':
  6.  case 'o':
  7.  case 'u': puts("Voyelle" );
  8.   break;
  9.  case 'b':
  10.  //...
  11.  case 'z':  puts("Consonne" );
  12.   break;
  13.  default:  puts("Pas une lettre" );
  14. }
  15. }


Code :
  1. for (i=0; i<=longueur_de_chaine; i++){
  2.      if(strchr("aeiou"                , chaine[i]) != NULL){ puts("Voyelle"       ); }
  3. else if(strchr("bcdfghjklmnpqrstvwxyz", chaine[i]) != NULL){ puts("Consonne"      ); }
  4. else                                                       { puts("Pas une lettre" ); }
  5. }


 
Compter les occurences:

Code :
  1. #include <limits.h>
  2. int compteurs[CHARMAX]= {};
  3. for (i=0; i<=longueur_de_chaine; i++)
  4. compteurs[chaine[i]]++;


 
Position d'une lettre dans l'alphabet:

Code :
  1. #include <ctype.h>
  2. int indexalphabetique(char c){
  3. //assert(c>='a' && c<='z');
  4. return tolower(c)-'a'; //+1 pour compter à partie de 1
  5. }


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
mood
Publicité
Posté le 18-12-2002 à 05:48:57  profilanswer
 

n°272129
helvetik
Posté le 18-12-2002 à 13:34:37  profilanswer
 

excuse moi musaran ;)
merci de vos réponses les gars, mais ca ne m'aide po du tout...
apparement il n'existe aucune fonction qui me transforme mon nombre en caractère...
Je vais essayer autrement donc.
Là ou ca aurait été util, c que je veux tester tous les charactère de la table ASCII de 0 a 255....
donc tout mettre ca dans un switch....
 
par contre, la fonction strchar à l'aire interessante. Je vais peut-etre utiliser ca.
 

n°272549
Musaran
Cerveaulté
Posté le 19-12-2002 à 06:44:01  profilanswer
 

C'est pas encore clair ?
En C/C++, le type caractère est aussi un type numérique, sa valeur est le code du caractère dans la table de caractères.

Code :
  1. (char)65 //conversion valeur->caractère
  2. (int)'a' //conversion caractère->valeur


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°272704
helvetik
Posté le 19-12-2002 à 12:02:18  profilanswer
 

Musaran a écrit :

C'est pas encore clair ?
En C/C++, le type caractère est aussi un type numérique, sa valeur est le code du caractère dans la table de caractères.

Code :
  1. (char)65 //conversion valeur->caractère
  2. (int)'a' //conversion caractère->valeur




 
ouais, je vien de trouver un truc similaire:

Code :
  1. variable=static_cast<char>(97)
  2. //met 'a' dans variable
  3. variable=static_cast<int>(a)
  4. //met 97 dans variable


avec ca g pu terminer mon programme..
 
le probleme c que c un copain qui a suivit un cour de C++ qui m'a donné le nom de cette fonction... et comme je fais un programme en C et pas un programme mixte...
Je crois avoir trouvé ca qui fait partit du standard C:
         langage C                langage C++
 ... = (char*)pVoid  => ... = static_cast<char*>( pVoid );
 
Donc ta réponse est préférable. Je vais faire les modifs..
A+
et merci


Message édité par helvetik le 19-12-2002 à 12:11:57

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

  passer d'un nombre en hexa en caractère ASCII

 

Sujets relatifs
ascii vers asciiEcriture hexadécimale d'un nombre
Passer un tableau en variableFPDF Passer ue variable a la fonctions header
Fonctions pour passer un int vers un char et une chaine vers un int ?[VBSCRIPT]Ouvrir un fichier pour faire une recherche de caractere
[C] Nombre EnormeServeur local impossible de passer des variable par url [résolu]
Delphi 4 + BD : Un moyen pour avoir des nombre vraiment long[DELPHI] comment connaitre le nombre d'élément dans une...
Plus de sujets relatifs à : passer d'un nombre en hexa en caractère ASCII


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