IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

Probleme avec g_strv_length (cherche equivalent "strlen()" dans la glib)


Sujet :

GTK+ avec C & C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 69
    Points : 34
    Points
    34
    Par défaut Probleme avec g_strv_length (cherche equivalent "strlen()" dans la glib)
    Bonjour a tous

    Je comprends pas le resultat que me donne cette fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    g_strv_length ()
     
    guint               g_strv_length                       (gchar **str_array);
     
    Returns the length of the given NULL-terminated string array str_array.
     
    str_array : 	a NULL-terminated array of strings.
    Returns : 	length of str_array.
     
    Since 2.6
    Lorsque je declare le tableau de chaines de caracteres comme si dessous, g_strv_length me retourne "9"
    Si par contre je lui demande de calculer la longueur sur une chaine de caractere, elle me retourne "3"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        gchar *Tab[]={"Bonjour","comment","ca","va","?"};
        sStatusText=g_strdup_printf("Bonjour comment ca va ?");
     
        printf("Length Tab:%i\n",g_strv_length(Tab));
        printf("Length string:%i\n",g_strv_length(&sStatusText));
     
        g_free(sStatusText);
        sStatusText=NULL;
    Comment cela se fait il?

    Peut etre que je n'utilise pas la bonne fonction ...

    En fait j'aimerais une fonction qui me retourne le nombre de caracteres contenus dans une chaine ('\0' compris ou non), afin d'utiliser:

    gtk_text_buffer_get_iter_at_line_offset(GtkTextBuffer *buffer, GtkTextIter *iter, gint line_number, gint char_offset);

    Qui me permettra, une fois la chaine inserée dans le GtkTextBuffer, d'avoir un GtkTextIter marquant le dernier mot du buffer.


    Merci d avance

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 69
    Points : 34
    Points
    34
    Par défaut
    En fait pour etre plus concis je cherche dans la glib l'equivalent de la fonction "strlen" de la lib string.h

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par Marmoccelle
    En fait pour etre plus concis je cherche dans la glib l'equivalent de la fonction "strlen" de la lib string.h
    J'ai justement un doute quant à l'existence d'un équivalent dans la GLib, je ne crois pas en avoir vu
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Bonjour,

    g_strv_length permet de connaître la taille d'un tableau de chaîne de caractères terminé par un élément NULL (c'est ce que retourne la fonction g_split).

    Bizarrement, il n'existe pas de g_strlen (ni de g_strcmp) alors qu'il existe un g_strcpy, va savoir pourquoi

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par gege2061
    Bonjour,

    g_strv_length permet de connaître la taille d'un tableau de chaîne de caractères terminé par un élément NULL (c'est ce que retourne la fonction g_split).

    Bizarrement, il n'existe pas de g_strlen (ni de g_strcmp) alors qu'il existe un g_strcpy, va savoir pourquoi
    Oui c'est clair que c'est un peu .... bizzare
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 69
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par Franck.H
    Oui c'est clair que c'est un peu .... bizzare
    Oki ca marche, c'est vrai que c'est bizarre

    Merci a vous deux

    A+

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    quel est l'equivalent de printf, scanf, ... dans la glib?

  8. #8
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Points : 1 633
    Points
    1 633
    Par défaut
    Y a un g_print, je suis pas sûr qu'il y ait un équivalent à scanf. En général, la glib fournit des équivalents à des fonctions fournies par la libc quand le comportement a tendance à varier/être buggé entre les différentes platformes sur lesquelles la glib est dispo. strlen se comporte partout pareil, donc pas besoin d'un g_strlen.

  9. #9
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Points : 2 002
    Points
    2 002
    Par défaut
    Citation Envoyé par teuf13 Voir le message
    En général, la glib fournit des équivalents à des fonctions fournies par la libc quand le comportement a tendance à varier/être buggé entre les différentes platformes sur lesquelles la glib est dispo. strlen se comporte partout pareil, donc pas besoin d'un g_strlen.
    Je confirme. Mais il est vrai que c'est assez déconcertant, et avoir un g_ascii_strlen pour être homogène serait pas mal, sachant qu'il y a aussi g_utf8_strlen qui fait la même chose pour des chaines utf8.

    Avec juste strlen, les débutants passent à côté du problème et ne se posent pas la question de l'encodage utilisé, ce qui peut entraîner des erreurs (utiliser strlen sur des chaines utf8 par exemple).
    Documentation officielle GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels GTK+ 3:
    GTK en C, GTK en Python

    Tutoriels par l'exemple (platform-demos):
    GTK (tous langages)

  10. #10
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Voici la liste de ce qui est disponible : https://developer.gnome.org/glib/sta...Functions.html
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2013] Problemes avec insert into et les simple quote
    Par Alann dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 18/07/2014, 17h41
  2. Réponses: 2
    Dernier message: 30/08/2004, 14h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo