Fonction qui retourne l'adresse
joujou98
-
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
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
mon essaie mais ça marche pas !
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. |
1 réponse
-
Salut joujou98,
Pourvoid strndel(char *s,int n, int i)
, tu n'as pas besoin de faire demalloc()
et surtout pas deux fois sans rien libérer, et il te suffit de faire un seulstrcpy()
à 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