inversé une chaine de caractere - C - Programmation
Marsh Posté le 02-11-2006 à 14:33:35
Tu parcours le char* contenant ta chaine de strlen(detachaine)-1 à 0, en affichant chaque caractère.
Ce ne serait pas un exercice de cours par hasard ?
Marsh Posté le 02-11-2006 à 15:06:55
ah non pas du tout ... remarque il me semble l'avoir eu pour exercice quand j'etais en cours
mais la c'est juste par faint néantise
je suis sur un forum de discussion et il y a ce jeu .. bref pas envi de m'embeté alors autant programmer
Marsh Posté le 02-11-2006 à 15:21:16
angelo78 a écrit : ah non pas du tout ... remarque il me semble l'avoir eu pour exercice quand j'etais en cours |
Ca ne serait pas étonnant non.
angelo78 a écrit : mais la c'est juste par faint néantise |
Bah tiens si tu t'ennuies:
http://www.bescherelle.com/
Marsh Posté le 02-11-2006 à 15:29:51
ReplyMarsh Posté le 02-11-2006 à 15:36:02
angelo78 a écrit : lol c'est pour le mot faineantise ?? |
c'est pour ta syntaxe et ta grammaire en général. Effectivement, l'orthographe a l'air de faire partie de tes lacunes.
Marsh Posté le 02-11-2006 à 15:49:37
bon j'admet
pour en revenir au sujet
voici un debut de code alors je ne sais pas si ca viens de chez moi mais quans je le lance ca met toujours une erreur qui m'oblige meme à quitter le terminal
Code :
|
Marsh Posté le 02-11-2006 à 15:57:00
justement ce n'est pas une erreur venant de la compilation
je travail sous windows et lorsque je lance le programme il me met le fameux ecran qui signal que le fichier a rencontré un probleme et qu'il doit fermé avec la possibilité d'envoyer un rapport ou non
donc peut etre que c'est mon logiciel pour programmer qui déconne ?
j'utilise Dev C++
Marsh Posté le 02-11-2006 à 16:04:43
Au hazard, essaye d'allouer de la mémoire pour ta chaîne de caractères et puis passe à scanf l'adresse de début de la chaine.
Marsh Posté le 02-11-2006 à 16:28:52
angelo78 a écrit : justement ce n'est pas une erreur venant de la compilation |
Les reflexes à avoir:
Debug et vérifie les valeurs de tes variables à chaque étape de ton déroulement.
Vérifie les initialisations.
Vérifie que tu te sers correctement des fonctions mises en jeu.
Vérifie que tes pointeurs on de la mémoire qui leur est allouée (tip)
angelo78 a écrit : donc peut etre que c'est mon logiciel pour programmer qui déconne ? |
C'est rarement ca !
Marsh Posté le 02-11-2006 à 18:52:08
1) Te ne lis pas la chaine comme il faut. Avec %s il faut passer a scanf un char *, qui est l'adresse d'un buffer. Donc en gros dans ton cas il faut soit char message[1024], soit tu gardes un char * mais il faut allouer un buffer avec malloc.
2) Lire un %s avec scanf c'est dangereux, parce qu'il n'y a pas de controle sur la taille des donnees lues. En fait il peut y a avoir un controle, mais vu ton niveau utilises plutot fgets.
3) Dans printf, %s affiche une chaine, pas un charactere. Il te faut soit %c, soit (mieux) utiliser fputc.
4) C'est juste une question de style, mais c'est idiot de controler i > -1 alors que i >= 0 marche aussi bien, sans deborder des plages de valeurs qui ont un sens pour i (le jour ou tu a un unsigned, tu fera comment ?).
Marsh Posté le 02-11-2006 à 19:54:50
angelo78 a écrit :
|
Tu passes l'adresse d'une variable d'une taille de quelques bytes à scanf() ? T'as peur de rien : si le mot tapé dépasse ces quelques bytes, c'est le drame...
Au fait, mon compilateur n'aime pas du tout... Le tien devrait être mieux réglé...
Project : Forums |
Marsh Posté le 02-11-2006 à 14:22:51
bonjour le forum
je butte un peu sur un petit programme pas bien méchant mais comme je n'est pas programmé depuis un certain temps ma mémoire me fais des tour
ce que je voudrai c'est taper une phrase et que on me la renvoi à l'envers
exemple :
bonjour tout le monde deviens ednom tuot ruojnob
si vous pouviez m'aider