Programmation en C , inversement chaines
Résolu
capa57
Messages postés
383
Statut
Membre
-
capa57 Messages postés 383 Statut Membre -
capa57 Messages postés 383 Statut Membre -
Bonjour,
J'ai un tableau de caractères en C , je demande à l'utilisateur de saisir une chaîne au clavier... il prends cette chaîne l'inverse et la met dans un deuxième tableau
J'ai essayé de faire ceci mais ça ne fonctionne pas...
char inverse_chaine(const char chaine[MAX], char inv[MAX])
{
#include <stdio.h>
#include <string.h>
int i, taille, j;
taille = longueur_chaine(chaine);
i = taille;
for (i= taille; i=0; i--){
inv[j] = chaine[i];
j++;
printf("test %s", inv);
}
}
ensuite j'appelle ma fonction dans mon main :
********************************************
int main(int argc, char *argv[])
{
char chaine1[MAX]; //declaration tableau
char inverse_chaine1[MAX];
inverse_chaine(chaine1, inverse_chaine1);
printf("chaine inverse: %s \n", inverse_chaine1);
...
...
}
********************************************
et voilà le résultat ...
test // ce que l'utilisateur tape au clavier
chaine : test //affichage de ce que l'utilisateur tape au clavier
taille de la chaine = 4 // taille de la chaîne saisie
chaine inverse: aaaaaAAaaaAaaaaaAaaAaaa-GCCLIBCYGMING-EH-TDM1-SJLJ-GTHR-MINGW32
Process returned 81 (0x51) execution time : 1.390 s
Press any key to continue.
Voilà il me retourne un truc totalement incohérent...
je plane need help ^^
J'ai un tableau de caractères en C , je demande à l'utilisateur de saisir une chaîne au clavier... il prends cette chaîne l'inverse et la met dans un deuxième tableau
J'ai essayé de faire ceci mais ça ne fonctionne pas...
char inverse_chaine(const char chaine[MAX], char inv[MAX])
{
#include <stdio.h>
#include <string.h>
int i, taille, j;
taille = longueur_chaine(chaine);
i = taille;
for (i= taille; i=0; i--){
inv[j] = chaine[i];
j++;
printf("test %s", inv);
}
}
ensuite j'appelle ma fonction dans mon main :
********************************************
int main(int argc, char *argv[])
{
char chaine1[MAX]; //declaration tableau
char inverse_chaine1[MAX];
inverse_chaine(chaine1, inverse_chaine1);
printf("chaine inverse: %s \n", inverse_chaine1);
...
...
}
********************************************
et voilà le résultat ...
test // ce que l'utilisateur tape au clavier
chaine : test //affichage de ce que l'utilisateur tape au clavier
taille de la chaine = 4 // taille de la chaîne saisie
chaine inverse: aaaaaAAaaaAaaaaaAaaAaaa-GCCLIBCYGMING-EH-TDM1-SJLJ-GTHR-MINGW32
Process returned 81 (0x51) execution time : 1.390 s
Press any key to continue.
Voilà il me retourne un truc totalement incohérent...
je plane need help ^^
A voir également:
- Programmation en C , inversement chaines
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Application de programmation - Guide
- Mettre en veille un programme - Guide
- Recherche automatique des chaînes tv thomson - Forum TNT / Satellite / Réception
- Comment installer les chaînes sur tv tcl en wifi - Forum TV & Vidéo
3 réponses
Bonjour,
Tout d'abord, il faut inclure #include <stdio.h> et cie dans les premières lignes et non dans un corps de fonction.
taille = longueur_chaine(chaine);
Qu'est-ce que longueur_chaine() ? Il nous faudrait son code, il y a peut-être une erreur aussi à ce niveau.
i = taille;
Inutile puisque tu remets i=taille dans le for.
j++;
Oui, mais que vaut j ? Il n'a jamais été initialisé, sa valeur est donc bidon. Il suffit de mettre j=0 avant le for. C'est cette erreur-là qui te fait tout bugguer.
Cdlt,
Tout d'abord, il faut inclure #include <stdio.h> et cie dans les premières lignes et non dans un corps de fonction.
taille = longueur_chaine(chaine);
Qu'est-ce que longueur_chaine() ? Il nous faudrait son code, il y a peut-être une erreur aussi à ce niveau.
i = taille;
Inutile puisque tu remets i=taille dans le for.
j++;
Oui, mais que vaut j ? Il n'a jamais été initialisé, sa valeur est donc bidon. Il suffit de mettre j=0 avant le for. C'est cette erreur-là qui te fait tout bugguer.
Cdlt,
J'ai essayé ça mais ça ne fonctionne toujours pas... dans mon résultat il ne m'affiche rien du tout
void inverse_chaine(const char chaine[MAX], char inv[MAX])
{
int i=0, taille, j=0;
taille = longueur_chaine(chaine);
i = taille;
for (i= taille; i>0; i--){
inv[j] = chaine[i];
j++;
}
}
ma fonction longueur chaine est équivalente à strlen en fait je me suis juste amusé à la créer moi même
int longueur_chaine(const char tab[MAX])
{
int i;
for (i = 0; tab[i] != '\0'; i++);
return i;
}
void inverse_chaine(const char chaine[MAX], char inv[MAX])
{
int i=0, taille, j=0;
taille = longueur_chaine(chaine);
i = taille;
for (i= taille; i>0; i--){
inv[j] = chaine[i];
j++;
}
}
ma fonction longueur chaine est équivalente à strlen en fait je me suis juste amusé à la créer moi même
int longueur_chaine(const char tab[MAX])
{
int i;
for (i = 0; tab[i] != '\0'; i++);
return i;
}
AHHHHH j'ai trouvé ... il fallait que j'initialise mon tableau en fait :/ (erreur bidon :( )
voici le code
void inverse_chaine(const char chaine[MAX], char inv[MAX])
{
int i = 0;
int j =longueur_chaine(chaine)-1;
for (i = 0 ; i < MAX ; i++)
{
inv[i] = 0;
}
for(i=0;chaine[i]!='\0';i++)
{
inv[i]=chaine[j];
j--;
}
}
// appel de la fonction dans le main
inverse_chaine(chaine1, inverse_chaine1);
printf("chaine 1 : %s\n chaine inverse: %s \n\n", chaine1 , inverse_chaine1);
merci ^^
voici le code
void inverse_chaine(const char chaine[MAX], char inv[MAX])
{
int i = 0;
int j =longueur_chaine(chaine)-1;
for (i = 0 ; i < MAX ; i++)
{
inv[i] = 0;
}
for(i=0;chaine[i]!='\0';i++)
{
inv[i]=chaine[j];
j--;
}
}
// appel de la fonction dans le main
inverse_chaine(chaine1, inverse_chaine1);
printf("chaine 1 : %s\n chaine inverse: %s \n\n", chaine1 , inverse_chaine1);
merci ^^