Menu

Fonction qui retourne l'adresse

-
Bonjour,

on nous demande de créer une fonction qui retourne l'adresse de la dernière occurence de la chaine p dans la chaine s, NULL si p n'apparait pas dans s. char* strstr(char* s,char* p)
et void strndel(char* s,int n,int i) qui supprime n caracteres à partir de la position i

void strndel(char *s,int n, int i)
{
    char *tmp ,*k,*q;
     int len_s=strlen(s);
     tmp=malloc(len_s  +1 );
     q=malloc(n+1);
      k=s;
      if(tmp)
     {
         strncpy(tmp,s,i);
         k+=i+n ;
         strcpy(tmp+i,k+i+n);
     }

     printf("la chaine apres la supression est %s ",s[i]);

}



mon essaie mais ça marche pas !
Configuration: Windows / Firefox 63.0


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
Afficher la suite 

Votre réponse

1 réponse

Messages postés
4810
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
14 décembre 2018
0
Merci
Salut joujou98,

Pour
void strndel(char *s,int n, int i)
, tu n'as pas besoin de faire de
malloc()
et surtout pas deux fois sans rien libérer, et il te suffit de faire un seul
strcpy()
à mon sens.

Réfléchis au problème avec une feuille et un crayon et une chaîne simple.

Par exemple
'v','o','i','t','u','r','e','\0'
que tu transformes en
'v','o','i','e','\0'
...

Dal
Commenter la réponse de [Dal]