Cornell711
Messages postés26Date d'inscriptionlundi 4 octobre 2004StatutMembreDernière intervention20 juin 2005 21 févr. 2005 à 19:25
salut,
Voila mon idée ( je ne connais pas le morse ) : - utiliser une boucle
"for" pour parcourir le message qui est une chaîne de caractères, et
pour chaque caractère, chercher l'équivalent morse dans le tableau de
la manière suivante ( caractere est un char qui contient votre lettre )
:
printf("%s \n", morsetab[caractere]);
comme les caracteres sont simplement en C des entiers sur 8 bits, il
vous faudrait la traduction de A par exemple qui a le code ascii 65 à
la position 65 de votre tableau de morse. Il y aura alors des trous et
de la mémoire gaspillée, mais pour un petit programme le code sera plus
élégant. Je crois que je ne suis pas passé à côté du sujet?!
Cornell711
Messages postés26Date d'inscriptionlundi 4 octobre 2004StatutMembreDernière intervention20 juin 2005 22 févr. 2005 à 13:54
salut,
Oui on l'utilise pour désigner les chaînes lors du formattage exemple
printf("%s\n",moncodemorse);
affiche la chaine moncodemorse et va à la ligne;
Si la chaine de caractere c contient "bonjour " alors le programme affiche vrai sinon il affiche faux
Au cas ou tu le saurais pas le ! veux dire la meme chose que ==0
pour pouvoir comparer les lettres de ta phrase une par une il faut utilser un pointeur de type char* qui pointe vers l'adresse d'un emplacement memoire de la taille d'un caractere (un octet)
pour la syntaxe :
char phrase[]="sos";
char* c=phrase; // le pointeur c pointe vers l'adresse du premier caractere
if( *a=='a') //teste si la lettre pointée est bien un 'a'
...
d'ailleurs en passant j'ai une question aussi sur les pointeurs:
si je fais :
char c[]="bonjour";
char*a=c;
a+=2;
cout<<*a; //affiche : n
cout<<a; //affiche: njour;
Pourquoi il m'affiche cela ? j'arrive pas a me l'expliquer...