[C] Supprimer 1ère occurence selon motif
Résolu/Fermé
A voir également:
- [C] Supprimer 1ère occurence selon motif
- Supprimer une page word - Guide
- Supprimer compte instagram - Guide
- Supprimer pub youtube - Accueil - Streaming
- Impossible de supprimer un fichier - Guide
- Supprimer liste déroulante excel - Guide
7 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
10 févr. 2009 à 18:20
10 févr. 2009 à 18:20
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
kill4m
Messages postés
224
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
28 janvier 2012
26
10 févr. 2009 à 14:02
10 févr. 2009 à 14:02
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
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
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
10 févr. 2009 à 14:10
10 févr. 2009 à 14:10
Re,
Pour avoir la correction il nous faut voir ce que tu as fait. L'ennoncé ne suffit pas.
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
#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
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
10 févr. 2009 à 17:44
10 févr. 2009 à 17:44
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ésultat
lami20j@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
10 févr. 2009 à 18:25
Je préfère ta version ;-)
Toutefois avec for il peut voir un peu le mécanisme ;-))