Bonjour,
J’ai une question concernant la suppression de caractères dans une chaîne de caractères.
J’essaie de trouver le code qui répond à la question suivante :
supprimer toutes les apparitions d’une sous chaîne de caractères qui se trouve dans une chaîne de caractères.
Cette sous chaîne doit être précédé d’un caractère "particulier" pour être supprimée.
Et à la fin du programme, on doit indiquer le nombre de suppressions.
J'ai imaginé que chaine originale était "Taxattatxattaxat" et qu'on devait supprimer les "at" précédé par des "x"
Pour ce qui est de la fonction main , j’ai fait cela :
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 #include <stdio.h> #include <string.h> #include <stdlib.h> #define N 128 int main(int argc, char * argv []) { int nmbr = 0; char Sousch [2]; char ch1[N]; printf("Entrez la chaine originale "); gets(ch1); printf(" Entrez les deux caractères a supprimer"); scanf("%c,%c",&Sousch[0],&Sousch[1]); nmbr = modifchaine(17 , ch1, Sousch); if (nmbr>0) { printf("nombre de suppressions : %d ", nmbr); } else { printf("Aucune suppression de caractères dans la chaine originale "); } system ("Pause"); return 0; }
Par contre pour la fonction qui me permettra de modifier la chaîne en fonction des conditions, j’ai eu du mal à la conclure :
Est-ce que quelqu’un peut m’expliquer comment conclure cette fonction s’il vous plaît ! Merci d'avance!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 int modifchaine(int n, char ch1[],char Sousch [2] ); int i, j , nmbr = 0; char ChaineModifié[n]; while (i<n) { ChaineModifié [j] = ch1[i] // mettre le caractère dans la chaine modifie j++; if (ch1 [i] == 'x') && (ch1 [i+1] == Sousch[0]) && (ch1 [i+2] == Sousch[1] )
Partager