Question programe c
zakout
-
Hxyp Messages postés 401 Date d'inscription Statut Membre Dernière intervention -
Hxyp Messages postés 401 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
on me demande de faire un programe qui supprime une chaine d une texte.
j ai essaye mais j arrive pas
exemple: chaine mooohhh
sous_chaine oh
le programe affichera m
voila ce que j ai fais jusqua maintenant mais c er faux
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void decoupe_chaine(char *chaine, char *sous_chaine, char *file);
int main(void)
{
char file[100] = {0};
char chaine[51];
char sous_chaine[51];
printf("donner une chaine\n");
scanf("%s",&chaine);
printf("doner une sous chaine\n");
scanf("%s",&sous_chaine);
decoupe_chaine(chaine, sous_chaine, file);
printf("file : %s\n", file);
return 0;
}
void decoupe_chaine(char *chaine, char *sous_chaine, char *file)
{
int continuer=1;int i;
while (continuer ==1)
{
continuer=0;
char *c = NULL;
char *d = &chaine[0];
do
{
c = strstr(&d[0], sous_chaine);
if(c)
{
c[0] = 0;continuer=1;
strncat(file, &d[0], strlen(&d[0]));
d = &c[strlen(sous_chaine)];
}
}while(c);
if (continuer == 1 )
{
strncat(file, &d[0], strlen(&d[0]));
chaine = file;
file[100]="\0";
}
}
}
on me demande de faire un programe qui supprime une chaine d une texte.
j ai essaye mais j arrive pas
exemple: chaine mooohhh
sous_chaine oh
le programe affichera m
voila ce que j ai fais jusqua maintenant mais c er faux
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void decoupe_chaine(char *chaine, char *sous_chaine, char *file);
int main(void)
{
char file[100] = {0};
char chaine[51];
char sous_chaine[51];
printf("donner une chaine\n");
scanf("%s",&chaine);
printf("doner une sous chaine\n");
scanf("%s",&sous_chaine);
decoupe_chaine(chaine, sous_chaine, file);
printf("file : %s\n", file);
return 0;
}
void decoupe_chaine(char *chaine, char *sous_chaine, char *file)
{
int continuer=1;int i;
while (continuer ==1)
{
continuer=0;
char *c = NULL;
char *d = &chaine[0];
do
{
c = strstr(&d[0], sous_chaine);
if(c)
{
c[0] = 0;continuer=1;
strncat(file, &d[0], strlen(&d[0]));
d = &c[strlen(sous_chaine)];
}
}while(c);
if (continuer == 1 )
{
strncat(file, &d[0], strlen(&d[0]));
chaine = file;
file[100]="\0";
}
}
}
A voir également:
- Question programe c
- The following components are required to run this program microsoft visual c++ runtime ✓ - Forum Windows 10
- Programe tv - Forum Cinéma / Télé
- Programe pc - Télécharger - Montage photo
- AdwCleaner - Télécharger - Antivirus & Antimalwares
- The following component(s) are required to run this program microsoft visual c++ runtime - Forum loisirs/vie pratique
1 réponse
Bonjour, vous pouvez utiliser strncmp http://www.cplusplus.com/reference/cstring/strncmp/ ou memcmp :
le principe :
boucle sur la taille de la chaine avec i et j=0
if(!strncmp(&chaine[i],sous_chaine,taille_sous_chaine)){
alors on décale i +=taille_sous_chaine
} else {
chaine[j]=chaine[i];
j++;
}
i++;
après la boucle chaine[j]='\0';
le principe :
boucle sur la taille de la chaine avec i et j=0
if(!strncmp(&chaine[i],sous_chaine,taille_sous_chaine)){
alors on décale i +=taille_sous_chaine
} else {
chaine[j]=chaine[i];
j++;
}
i++;
après la boucle chaine[j]='\0';