Langage C

pampouna -  
 loupius -
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

loupius
 
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
pampouna
 
ç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
loupius
 
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