bonjour a tous
alors voila j'ai fait un programme qui marche trés bien!!
ce programme remplace des morceau de chaine par d'autres!!
mais le probleme maintenan est que j'ai envie de cree cette fonction puisque je doit l'utiliser plusieur fois!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 #include <stdio.h> main() { /* Déclarations */ char SUJ[100]; /* chaîne à transformer */ char CH1[100]; /* chaîne à rechercher */ char CH2[100]; /* chaîne de remplacement */ char FIN[100]; /* chaîne de sauvegarde pour */ /* la fin de SUJ. */ int I; /* indice courant dans SUJ */ int J; /* indice courant dans CH1 et CH2 */ int K; /* indice d'aide pour les copies */ int TROUVE; /* indicateur logique qui précise */ /* si la chaîne OBJ a été trouvée */ /* Saisie des données */ printf("Introduisez la chaîne à rechercher CH1 : "); gets(CH1); printf("Introduisez la chaîne à remplacer CH2 : "); gets(CH2); printf("Introduisez la chaîne à transformer SUJ : "); gets(SUJ); /* Recherche de CH1 dans SUJ */ TROUVE=0; for (I=0; SUJ[I] && !TROUVE; I++) if (SUJ[I]==CH1[0]) { for (J=1; CH1[J] && (CH1[J]==SUJ[I+J]); J++) ; if (CH1[J]=='\0') TROUVE=1; } /* Si CH1 a été trouvée dans SUJ alors sauvegarder la fin */ /* de SUJ dans FIN, copier ensuite CH2 et FIN dans SUJ. */ if (TROUVE) { I--; /* Maintenant I indique la position de CH1 */ /* dans SUJ et J indique la longueur de CH1 */ /* Sauvegarder la fin de SUJ dans FIN */ for (K=0; SUJ[K+I+J]; K++) FIN[K]=SUJ[K+I+J]; FIN[K]='\0'; /* Copier CH2 dans SUJ */ for (K=0; CH2[K]; K++,I++) SUJ[I]=CH2[K]; /* Recopier FIN dans SUJ */ for (K=0; FIN[K]; K++,I++) SUJ[I]=FIN[K]; /* Terminer la chaîne SUJ */ SUJ[I]='\0'; } /* Affichage du résultat */ printf("Chaîne résultat : \"%s\"\n", SUJ); return 0; }
Je sais qu'il faut utiliser les pointeur pour pouvoir retourner une chaine de caractere!!
Mais je ne maitrise pas beaucoups les pointeur!!
Alors pour ceux qui ont une piste pour mon probleme!!
merci!!!
Partager