Rechercher : dans
Par :

[C] Supprimer 1ère occurence selon motif

Dernière réponse le 11 fév 2009 à 12:29:03 houda, le 10 fév 2009 à 13:59:56 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « [C] Supprimer 1ère occurence selon motif » dans :
Sed - Substitution VoirSubstitution Substitution basique Simple Globale Ciblée Substitution conditionnée Simplee Avancée Bloc Avancéé Substitution basique Simple - 1ère occurrence (de chaque ligne) rencontrée uniquement sed 's/la/LA/' fichier.txt
Les files en langage C VoirLes files - Premier Entré Premier Sorti Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la file IV. Opérations sur les files A. Initialisation B. Insertion d'un élément dans la file C. Oter un...
Liste simplement chaînée VoirLISTES SIMPLEMENT CHAINÉES Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la liste IV. Opérations sur les listes chaînées A. Initialisation B. Insertion d'un élément dans la liste 1. Insertion...
Les objets en langage C++ VoirLa création d'objets En C++, il existe deux façons de créer des objets, c'est-à-dire d'instancier une classe : de façon statique de façon dynamique La création statique La création statique d'objets consiste à créer un objet en lui affectant un...
C++ .NET VoirC++.NET C++.NET est une version étendue du langage C++ standard qui fournit le support de la programmation managée. Les extensions managées pour C++ sont principalement constituées d’un ensemble de mots clés et d’attributs. Tout fichier...

1

kill4m, le 10 fév 2009 à 14:02:39

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 Mieux vaut se taire et passer pour un con, que de l'ouvrir e­t ne laisser aucun doute sur le sujet . 
mais pourquoi je fais jamais ce que je dis moi ....

Répondre à kill4m

2

houda, le 10 fév 2009 à 14:08:00

Merci pour la reponsle language de traduction est c
et on utilise la bibliotheque <string.h>

Répondre à houda

3

lami20j, le 10 fév 2009 à 14:10:36

Re,

Pour avoir la correction il nous faut voir ce que tu as fait. L'ennoncé ne suffit pas.
106485010510997108

Répondre à lami20j

4

houda, le 10 fév 2009 à 14:14:28

Merci pour la reponse
c tres gentil

Répondre à houda

5

houda, le 10 fév 2009 à 14:38:39

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

Répondre à houda

6

lami20j, le 10 fév 2009 à 17:44:17

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é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

Répondre à lami20j

7

fiddy, le 10 fév 2009 à 18:20:32

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
Google is your friend

Répondre à fiddy

8

lami20j, le 10 fév 2009 à 18:25:24

Salut,

Je préfère ta version ;-)
Toutefois avec for il peut voir un peu le mécanisme ;-)) 106485010510997108

Répondre à lami20j

9

 houda, le 11 fév 2009 à 12:29:03

Merci pour le resulat
on a fait la correction en classe et c'est presque le meme resultat
merci encore

Répondre à houda
Collection CommentÇaMarche.net