Langage C

Fermé
pampouna - 17 févr. 2009 à 01:56
 loupius - 17 févr. 2009 à 02:47
Bonjour,
j'ai rencontré un probleme avec cet exercice de programmation en C. Si vous pouvez me le corriger je serai trés reconnaissante.
voila l'enoncé de l'exercice:
Ecrire un programme qui supprime la premiere occurrence d'une chaîne de caractères OBJ dans une chaîne de caractères SUJ.
Exemples: PHON ALPHONSE ALSE
EI PIERRE PIERRE
voila mon travail:
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main ()
{
int i,j,k;
char OBJ[20],ch1[20];

puts ("donner une chaine");
gets (OBJ);

i=0;
while (j<=strlen(OBJ))
{
for (j=i+1;j<=strlen(OBJ)-1;j++)
{
if (OBJ[i]==OBJ[j])
{
for (k=0;k<=strlen(OBJ);k++)
ch1[k]=OBJ[i];
}
}
i++;
}
puts ("SUJ est ");
puts (OBJ);
getch ();
}
Merci d'avance pour votre aide!
A voir également:

3 réponses

En faisant tourner ce programme, tu dois bien te rendre compte s'il marche ou s'il ne marche pas.
S'il marche, inutile de poser la question.
S'il ne marche pas, alors décris nous ce qui ne va pas.
Bon j'ai une petite idée... car il y a une grosse erreur:
'while (j<=strlen(OBJ))' utilise 'j' qui n'est pas initialisé --->>> plantage non systématique mais fonctionnement probablement aléatoire.
0
ça ne marche pas et ça ne retourne pas la bonne réponse :( pour cela j'ai demandé de l'aide! si vous pouvez me corriger mon programme ou me donner un autre idée.
Merci d'avance!
0
En vérité, je ne vois pas comment le programme pourrait fonctionner correctement.
Relis-le et tu t'apercevras que tu as besoin de deux chaînes de caractères et tu n'en initialises qu'une seule ('chn1' n'est pas initialisé et est pourtant utilisé).
fiddy , trop gentil, va peut-être passer et te donner la solution. Il va aussi inévitablement te mettre en garde sur l'utilisation de la fonction 'gets'.
0