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

passer d'un nombre en hexa en caractère ASCII - C++ - Programmation

Marsh Posté le 17-12-2002 à 18:35:28    

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)

Reply

Marsh Posté le 17-12-2002 à 18:35:28   

Reply

Marsh Posté le 17-12-2002 à 18:36:41    

if ('a' == 65)


---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le 17-12-2002 à 18:44:18    

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
Reply

Marsh Posté le 17-12-2002 à 20:10:34    

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


---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le 17-12-2002 à 20:46:47    

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....

Reply

Marsh Posté le 17-12-2002 à 20:49:16    

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++]
Reply

Marsh Posté le 17-12-2002 à 20:56:26    

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
Reply

Marsh Posté le 17-12-2002 à 23:12:16    

helvetik a écrit :


c koi un musaran??


[:rofl]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 17-12-2002 à 23:48:09    

helvetik a écrit :


c koi un musaran??

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

Reply

Marsh Posté le 18-12-2002 à 05:48:57    

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
Reply

Marsh Posté le 18-12-2002 à 05:48:57   

Reply

Marsh Posté le 18-12-2002 à 13:34:37    

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.
 

Reply

Marsh Posté le 19-12-2002 à 06:44:01    

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
Reply

Marsh Posté le 19-12-2002 à 12:02:18    

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
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed