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

 C Discussion :

Les chaines de caracteres


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 41
    Par défaut Les chaines de caracteres
    Bonjour a vous tous,
    j'aimerais connaitre quelle forme utiliser pour definir une chaine de caractere {char *chaine ou char chaine[]} lorsqu'on utilise les fonctions de <string.h>
    Enfin les differences qu'il existe entre ces deux declarations...
    Je pensais qu'elles etaient plus ou moins equivalente. Mais j'ai l'impression que j'evite des erreurs quand je fais l'une ou l'autre des declarations.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #define _GNU_SOURCE
     
    int main (void)
    { 
     char *text = "test";
     char *res;
     res = strndup (text,6); 
    /* Mess de gcc:
    1) implicit declaration of function 'strndup' 
    2) assignment makes pointer from integer without cast...
    */
     printf("%s\n",res);
     return 0;
    }
    2)warning enlevé si je mets => res = (char *) strndup (text,6); mais je dois avouer ne pas trop comprendre l'utilitée de ceci... car d'apres ce que j'ai lu du man de strndup, cette fonction renvoie un pointeur sur une nouvelle chaine de caractere... als pourquoi le cast (char *) ???

    Merci pour votre aide

  2. #2
    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 : 48
    Localisation : France, Haut Rhin (Alsace)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Salut et bienvenue sur les forums de developpez.com

    Citation Envoyé par BatuBou Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    1) implicit declaration of function 'strndup' 
    2) assignment makes pointer from integer without cast...
    */
    ....
    Ton problème viens du fait que ton inclusion de string.h n'est pas bien faite. D'après ce que j'ai pû lire sur un man Linux, il faut d'abord définir la constate _GNU_SOURCE puis faire l'inclusion soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define _GNU_SOURCE
    #include <string.h>
    Ton pemier warning viens de là sans aucun doute et le second doit forcément y être lié également car le cast n'a pas lieu d'être
    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 !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 41
    Par défaut
    Oui effectivement il fallait les placer dans le bonne ordre...lol je pensais pas que ca pouvait engendrer des warning [pas besoin de cast]
    Merci a toi

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

Discussions similaires

  1. probleme avec les chaines de caracteres
    Par snake77350 dans le forum C
    Réponses: 11
    Dernier message: 25/04/2006, 18h29
  2. [VBA-E]Jouer avec les chaines de caractere contenu ds cellu
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/02/2006, 13h15
  3. probleme sur les chaines de caractere
    Par foufi5 dans le forum C
    Réponses: 8
    Dernier message: 22/12/2005, 15h30
  4. [RegEx] supprimer les chaine à trois caracteres d'une phrase
    Par abj8077 dans le forum Langage
    Réponses: 3
    Dernier message: 21/10/2004, 14h48
  5. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01

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