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

Réseau C Discussion :

Afficher le debut d'une chaine de caractère


Sujet :

Réseau C

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 25
    Points : 22
    Points
    22
    Par défaut Afficher le debut d'une chaine de caractère
    Je voudrais savoir comment afficher le début d'une chaine de caractère.
    Par exemple, si je fais :

    il affiche la chaine en entier au lieu d'afficher les trois premiers caractères comme je le voudrais.

    Si quelqu'un a la solution en gardant la fonction printf je l'en remercie d'avance.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 258
    Points : 288
    Points
    288
    Par défaut
    bah tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    char *chaine = "abcdefgh";
    int nb_car = 3; //nbre de caractère à afficher
    int i = 0;
    while( i < nb_car)
       printf("%c",chaine[i++]); //post incrémentation !
    Pas très pratique mais tu es certain du résultat

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 25
    Points : 22
    Points
    22
    Par défaut
    J'ai trouvé la solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("%0.3s","abcde");
    ca affiche "abc".
    mais merci quand même.

  4. #4
    Membre éclairé
    Avatar de Edouard Kaiser
    Profil pro
    Inscrit en
    Février 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Points : 756
    Points
    756
    Par défaut
    J'ai un peu le meme probleme avec mon logiciel sur les socket.
    Je ne connais pas à l avance la longueur du message que va me renvoyer le serveur donc je le stocke dans un grand tableau de char ( [200] ), le probleme c est que ça m affiche le message du serveur plus les X caractères qui n'ont pas été attribués du tableau.

    Quelle serait la meilleure solution pour n'afficher que le message du serveur et pas mon tableau en entier ?

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 258
    Points : 288
    Points
    288
    Par défaut
    tu récupère dans une variable la longueur des données reçues (recv() renvois cette valeur) et tu mets un \0 à cette position.
    Exemple en pseudo-code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int nb = recv(data); //data est ton tableau
    data[nb] = '\0';
    Ou une autre méthode consiste à initialiser ton tableau à '\0' avant de le passer en argument

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    memset(data,'\0',TAILLE_TAB);
    recv(data);
    //automatiquement ce qu'il y a après les données reçues sera des '\0' et donc ne s'afficheront pas
    Teste les deux méthodes

  6. #6
    Membre éclairé
    Avatar de Edouard Kaiser
    Profil pro
    Inscrit en
    Février 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2004
    Messages : 521
    Points : 756
    Points
    756
    Par défaut
    Merci Yabo, toujours présent pour donner les bonnes solutions

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 27/04/2011, 16h59
  2. [Debutant]Mettre une chaine de caractère dans un TEdit
    Par M E H D I dans le forum C++Builder
    Réponses: 2
    Dernier message: 02/10/2007, 14h08
  3. Afficher le début d'une chaine de caractère
    Par yaumme dans le forum Langage
    Réponses: 2
    Dernier message: 10/07/2007, 14h46
  4. [Débutant]Afficher une chaine de caractères
    Par cyrille2k5 dans le forum Oracle
    Réponses: 3
    Dernier message: 02/06/2006, 16h04
  5. afficher une chaine de caractères
    Par felicity dans le forum C
    Réponses: 12
    Dernier message: 21/12/2005, 14h28

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