Le langage C
Fermé
lamia23
Messages postés
1
Date d'inscription
samedi 24 mars 2007
Statut
Membre
Dernière intervention
24 mars 2007
-
24 mars 2007 à 14:57
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 25 mars 2007 à 16:23
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 25 mars 2007 à 16:23
A voir également:
- Le langage C
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage pascal - Télécharger - Édition & Programmation
- Débuter langage batch windows - Guide
3 réponses
bon l'idée c'est que tu fait un indice courant qui compare chaque fois la premiére lettre de ton mot avec les lettre de ta chaine. est si tu trouvera cette lettre tu fait un autre indice qui rassure que toute la suite est la meme. voila je suis un peut occupé si ta pas compri contacte moi a ma boite.
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
25 mars 2007 à 16:23
25 mars 2007 à 16:23
Salut,
voilà un petit exemple (il n'y a pas de fonctions prédefini) en utilisant juste de boucles simples.
c'est juste une exemple, à toi d'apporter des modifications
voilà un petit exemple (il n'y a pas de fonctions prédefini) en utilisant juste de boucles simples.
c'est juste une exemple, à toi d'apporter des modifications
/* -------------------------------------------------- *\ sam 24 mars 2007 remplacer_mot.c Sujet:remplacer un mot dans une chaine si la chaine existe tant que le mot à remplacer existe dans la chaine le remplacer afficher la nouvelle chaine \* -------------------------------------------------- */ #include <stdio.h> #define MAXMOT 20 #define MAXLIGNE 1000 int liremot (char mot1[] , int taille); int lireligne (char chaine[], int taille); int cherchemot (char chaine[], char mot1[]); void remplacemot (char chaine[], char mot1[], char mot2[]); int l1, l2; int main () { char mot1[MAXMOT]; char mot2[MAXMOT]; char chaine[MAXLIGNE]; printf ("Entrez le mot à remplacer : "); l1 = liremot (mot1, MAXMOT); printf ("Entrez le mot remplaçant : "); l2 = liremot (mot2, MAXMOT); if (lireligne (chaine, MAXLIGNE) > 0) { while (cherchemot (chaine, mot1) >= 0) remplacemot (chaine, mot1, mot2); printf ("%s", chaine); } return 0; } /* lire les mots (celui qu'on veut remplacer * et celui avec lequel on remplace */ int liremot (char mot1[], int taille) { int i,c; for (i = 0; i < taille - 1 && (c = getchar ()) != EOF && c != '\n'; ++i) mot1[i] = c; if (c == '\n') mot1[i] = '\0'; return i; } /* lire la ligne dans laquelle on * remplace le mot chercher */ int lireligne (char chaine[], int taille) { int i, c; printf ("Entrez une chaine de caractères : "); for (i = 0; i < taille - 2 && (c = getchar ()) != EOF && c != '\n'; ++i) chaine[i] = c; if (c == '\n') chaine[i++] = '\n'; chaine[i] = '\0'; return i; } /* cherche le mot à remplacer dans la chaine * retourne la position */ int cherchemot (char chaine[], char mot1[]) { int i, j, k; for (i = 0; chaine[i] != '\0'; ++i) { for (j = i, k = 0; mot1[k] != '\0' && chaine[j] == mot1[k]; ++j, ++k) ; if (k > 0 && mot1[k] == '\0') return i; } return -1; } /* remplacer le mot ou les mots */ void remplacemot (char chaine[], char mot1[], char mot2[]) { int dec, pos; int i, j; char temp[MAXLIGNE]; pos = cherchemot (chaine, mot1); dec = l1 - l2; if (dec > 0) { for (i = pos, j = 0; i < pos + dec + 1 && mot2[j] != '\0'; ++i, ++j) chaine[i] = mot2[j]; for (j = pos; (chaine[i] = chaine[j + l1]) != '\0'; ++j, ++i) ; chaine[i] = '\0'; } else { for (i = pos + l1, j = 0; (temp[j] = chaine[i]) != '\0'; ++i, ++j) ; for (i = pos, j = 0; i < pos + l2 && mot2[j] != '\0'; ++i, ++j) chaine[i] = mot2[j]; chaine[i] = '\0'; for (j = 0; (chaine[i] = temp[j]) != '\0'; ++i, ++j) ; chaine[i] = '\0'; } } /* __END__ */