A voir également:
- Cryptage une chaine de caractères en C
- Caractères ascii - Guide
- Chaine tnt gratuite sur mobile - Guide
- Caractères spéciaux clavier azerty - Guide
- Caractères spéciaux - Guide
- Plus de chaine tv - Guide
1 réponse
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
Modifié par fiddy le 29/12/2010 à 08:53
Modifié par fiddy le 29/12/2010 à 08:53
Bonjour,
Attention, les chaînes text et phrase n'ont pas la même taille.
Il y a déjà un problème de ce côté.
gets(phrase);
Il ne faut pas utiliser la fonction gets, car si tu rentres une chaîne trop longue, cela fera planter ton programme. Utilise plutôt fgets. Il ne faut pas oublier non plus d'enlever le retour chariot ('\n') dans la chaîne sinon ton algorithme va le mettre n'importe où dans l'autre chaîne et cela sautera une ligne à l'affichage.
Pourquoi deux boucles for ? C'est inutile.
Une seule boucle for avec : text[i]=phrase[strlen(phrase)-i]; suffit amplement.
Et il ne faut pas aller de 0 à 30, mais de 0 à strlen(phrase) +1 (non compris);
Corrige tout ça et s'il y a toujours des problèmes, reposte le code corrigé en prenant soin de le mettre entre deux balises "code" (à droite du bouton souligné).
Et pour info, c'est pas de la cryptographie mais une fonction qui inverse l'ordre des lettes tout simplement ;-))).
Cdlt,
Google is your friend
Attention, les chaînes text et phrase n'ont pas la même taille.
Il y a déjà un problème de ce côté.
gets(phrase);
Il ne faut pas utiliser la fonction gets, car si tu rentres une chaîne trop longue, cela fera planter ton programme. Utilise plutôt fgets. Il ne faut pas oublier non plus d'enlever le retour chariot ('\n') dans la chaîne sinon ton algorithme va le mettre n'importe où dans l'autre chaîne et cela sautera une ligne à l'affichage.
Pourquoi deux boucles for ? C'est inutile.
Une seule boucle for avec : text[i]=phrase[strlen(phrase)-i]; suffit amplement.
Et il ne faut pas aller de 0 à 30, mais de 0 à strlen(phrase) +1 (non compris);
Corrige tout ça et s'il y a toujours des problèmes, reposte le code corrigé en prenant soin de le mettre entre deux balises "code" (à droite du bouton souligné).
Et pour info, c'est pas de la cryptographie mais une fonction qui inverse l'ordre des lettes tout simplement ;-))).
Cdlt,
Google is your friend
29 déc. 2010 à 10:05
merci bcp tu m'as aidé en fait pour le cryptage de chaines c'est demandé dans l'exo de remplacer a par b b par c c par d ... moi j'arrive ps à trouver la syntaxe pour le faire et puis j'ai pensé à ça .
MERCI
29 déc. 2010 à 20:27
Pour décaler les lettres de l'alphabet (a devient b, etc.), il suffit de constater que 'a'+1='b'.
Ce qui donne : texte[i]=phrase[i]+1; dans une boucle for.
Cela ne suffit pas car pour 'z' tu ne viens pas sur 'a'. Il faut donc utiliser le modulo.
A toi de voir comment l'exploiter.
Cdlt,
29 déc. 2010 à 23:16