[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
A voir également:
- [C] Supprimer 1ère occurence selon motif
- Supprimer rond bleu whatsapp - Guide
- Supprimer page word - Guide
- Supprimer liste déroulante excel - Guide
- Supprimer hiberfil.sys - Guide
- Comment supprimer une application préinstallée sur android - Guide
7 réponses
Salut,
Puisque tu as le droit d'utiliser les fonctions de string.h, tu peux faire :
Cdlt
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
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
#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,
106485010510997108
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
Je préfère ta version ;-)
Toutefois avec for il peut voir un peu le mécanisme ;-))