Supprimer dernier caractère chaine C

Résolu
cap'tain sheeps Messages postés 447 Date d'inscription   Statut Membre Dernière intervention   -  
 yo -
Bonjour,

J'aimerais supprimer les 3 derniers caractères d'une chaîne de type gchar*. Seulement je ne connais pas la fonction qui me permettrais de le faire. A vrai dire, je ne sais pas si elle existe.

Quelqu'un pourrait-il me dire si elle existe (et son nom), ou bien dois-je me débrouiller autrement?

Merci d'avance,
Sheeps.

A voir également:

6 réponses

yo
 
je m'y prend peut être tard, mais je pense que si tu connais la taille de ta chaine t'a qu'a mettre comme caractère en str[longeur-3]='\0'
3
Hxyp Messages postés 401 Date d'inscription   Statut Membre Dernière intervention   54
 
Une chaîne se termine par le caractère null \0 normalement vous devriez pouvoir déterminer la fin de la chaîne et remplacer les 3 derniers par des \0
#include <stdio.h>
#include <glib.h>
#include <string.h>
#include <stdlib.h>

int main (void)
{
    int size,i;
    gchar *test=malloc(sizeof(gchar)*20);
    strcpy(test,"hello world");
    i=size=strlen(test)-1;
    while(i>size-3){
        test[i]='\0';
        i--;
    }
    printf("%s\n",test);
    free(test);
  return 0;
}
1
cap'tain sheeps Messages postés 447 Date d'inscription   Statut Membre Dernière intervention   10
 
Ps après test : ça marche parfaitement.
Encore merci.
1
Hxyp Messages postés 401 Date d'inscription   Statut Membre Dernière intervention   54
 
Bonjour, faites de la même façon que pour le type char

http://developer.gnome.org/glib/2.29/glib-Basic-Types.html#gchar
typedef char   gchar;
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cap'tain sheeps Messages postés 447 Date d'inscription   Statut Membre Dernière intervention   10
 
Bonjour et merci, justement, je ne sais pas non plus comment faire pour le type char. Est-il possible de me donner la méthode ou simplement le nom de la fonction?
Merci.
0
cap'tain sheeps Messages postés 447 Date d'inscription   Statut Membre Dernière intervention   10
 
Ah ok donc il n'y avait pas de fonction toute faite. Merci beaucoup pour ton aide.
0