[C] Supprimer 1ère occurence selon motif
Résolu
houda
-
houda -
houda -
Bonjour
je cherche la correction de cet exercice
s'il vous plait aidez moi
l'exercice:
ecrire un programme qui suprime la premiere occurence d'une chaine de caracteres OBJ dans une autre
chaine de caracteres SUJ
EXEMLES:
PHON ALPHONSE ALSE
T TOTALEMENT OTALEMENT
HELLO HELLO
et merci en tout cas
je cherche la correction de cet exercice
s'il vous plait aidez moi
l'exercice:
ecrire un programme qui suprime la premiere occurence d'une chaine de caracteres OBJ dans une autre
chaine de caracteres SUJ
EXEMLES:
PHON ALPHONSE ALSE
T TOTALEMENT OTALEMENT
HELLO HELLO
et merci en tout cas
Configuration: Windows XP Internet Explorer 7.0
7 réponses
-
Salut,
Puisque tu as le droit d'utiliser les fonctions de string.h, tu peux faire :#include <stdio.h> #include <string.h> int main(void){ char suj[50]; char obj[10]; char *p=NULL; printf("Entrez une chaine : "); fgets(suj,sizeof suj,stdin); printf("Mot à supprimer : "); scanf("%9s",obj); p=strstr(suj,obj); if(p) memmove(p,p+strlen(obj),sizeof obj); puts(suj); return 0; }
Cdlt -
En quelle langage ?? (C je suppose)
Et je suppose aussi que c'est un exercice que tu as à faire, donc tu commences (tu mets ce que tu as déjà fait) et nous on te dit si c'est juste ou pas ....
bye -
Re,
Pour avoir la correction il nous faut voir ce que tu as fait. L'ennoncé ne suffit pas.
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
mon travail c'est
#include<stdio.h>
#include<
void main()
{
char obj[20],suj[20];
int i,j;
j=0;
for(i=0;obj!='/0';i++)
if(obj[i]!=obj[i+1])
suj[j]=obj[i];
j++;
}
c'est ça mon tarvail, je ne sais pas comment je continue le programme -
Re,
lami20j@debian:~/trash/ccm_c$ cat ccm53_premieroccurence.c #include<stdio.h> #include<string.h> int main() { char obj[10]; char suj[50]; int i,j,k,t; printf("Entrez un la chaine : "); fgets(suj,50,stdin); printf("Mot à supprimer : "); scanf("%s",obj); for(i=0;suj[i]!='\0';i++){ for(j=i,k=0;obj[k]!='\0' && suj[j]==obj[k];++j,++k) ; if (k>0 && obj[k]=='\0') break; } for(t=i;t<strlen(suj);++t) suj[t]=suj[t+k]; suj[t]='\0'; printf("%s\n",suj); return 0; }Résultatlami20j@debian:~/trash/ccm_c$ gcc ccm53_premieroccurence.c lami20j@debian:~/trash/ccm_c$ ./a.out Entrez un la chaine : ALPHONSE Mot à supprimer : PHON ALSE lami20j@debian:~/trash/ccm_c$ ./a.out Entrez un la chaine : TOTALEMENT Mot à supprimer : T OTALEMENT lami20j@debian:~/trash/ccm_c$ ./a.out Entrez un la chaine : HELLO Mot à supprimer : HELLO lami20j@debian:~/trash/ccm_c$ ./a.out Entrez un la chaine : A LA FIN Mot à supprimer : FIN A LA
--
106485010510997108 -
merci pour le resulat
on a fait la correction en classe et c'est presque le meme resultat
merci encore