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 :

string.h : fonction spéciale.


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Par défaut string.h : fonction spéciale.
    salut

    je cherche une fonction - qui pourrais se trouver dans string.h - qui renverais une chaine constitué de n caracters spécifiés.

    si ca ne vous dit rien, je pourrais la coder moi meme, c'est juste histoire de" ne pas réinventer la roue

    voila, merci, ++ Tix.

  2. #2
    Membre éclairé Avatar de Bayard
    Inscrit en
    Juin 2002
    Messages
    863
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 863
    Par défaut
    memset initialise une chaîne avec un caractère.

    Attention, cette fonction ne met pas le FAMEUX caractère nul à la fin de la chaîne. Il faut le faire en plus.

  3. #3
    Membre confirmé
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Par défaut
    salut

    merci pour ta réponse.

    cette fonction me rebute un peu a voir les descriptions sur le net, j'essaye ce soir

    merci, ++ Tix.

  4. #4
    Membre confirmé
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Par défaut
    re-salut

    dites moi,comment pourrais-je revoyer une chaine de caracteres a partir d'uns fonction de ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    unsigned char chaine(param1, param2, param3...)
    {
    unsigned char chainetampon[] = "goz goz goz";
    return chainetampon;
    }
    merci, ++ Tix.

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par tixweb
    dites moi,comment pourrais-je revoyer une chaine de caracteres a partir d'uns fonction de ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    unsigned char chaine(param1, param2, param3...)
    {
    unsigned char chainetampon[] = "goz goz goz";
    return chainetampon;
    }
    Le plus simple est de passer l'adresse du premier élément d'un tableau de char de taille suffisante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       char out[123];
     
       chaine (out, sizeof out, parametres...);
    avec, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void chaine (char *out, size_t size, parametres...)
    {
       /* a developper */
    }
    tu peux éventuellement renvoyer out si tu ne l'as pas modifié, bien sûr...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    char *chaine (char *out, size_t size, parametres...)
    {
       /* a developper */
       return out;
    }
    pas sûr que ce soit utile.

    Sinon, tu peux allouer dynamiquement la chaine dans la fonction et retourner l'adresse de son premier élément...

    Charge à l'appelant de libérer le bloc alloué.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    char *chaine (parametres...)
    {
       char *out = malloc(de_la_bonne_taille_y_compris_le_0_final);
       if (out != NULL)
       {
          /* a developper */
       }
       return out;
    }

  6. #6
    Membre confirmé
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Par défaut
    merci

    donc, quoi qu'il en soit, je ne peu pas retourner la fonction elle meme comme avec un int ... ?

    merci, ++ Tix.

  7. #7
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par tixweb
    donc, quoi qu'il en soit, je ne peu pas retourner la fonction elle meme
    "Retourner la fonction", ça n'a aucun sens.

  8. #8
    Membre confirmé
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Par défaut
    hmhm ^^, oui, je me sui sdit la meme chose apres que tu me l'ai fait remarqué.

    bon, avec uen fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int goz(int parametre1, int parametre2)
    {
    return parametre1*parametre2;
    }
    donc la return attibue a la fonction goz la valeur de parametre1 * parametre2...

    ainsi ne serait il pas possible de retourner une chaine par la meme méthode ?

    merci, ++ Tix.

  9. #9
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par tixweb
    ainsi ne serait il pas possible de retourner une chaine par la meme méthode ?
    Une chaine est un tableau de char. On ne sait pas passer ou retourner un tableau en C.

    http://emmanuel-delahaye.developpez....ourner_tableau

  10. #10
    Membre confirmé
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Par défaut
    rha dommage. merci pour le coup de main

    ++ Tix.

  11. #11
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Oublies tes concepts de chaines des langages "evolués", tu ressentiras plus le besoin de retourner un tableau de char.

    Et memset() est le meilleur moyen pour faire ce que tu veux faire (en pensant à mettre un \0 à la fin)

  12. #12
    Membre confirmé
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Par défaut
    salut

    j'aime bien cette formule

    merci de me rappeler pour memset, mon programme bug, je pense que c'est a cause de ca

    pour rajouter le \0, je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pointeursurchar[w+1]="\0"
    ?

    ca me parait louche et ca ne marcher pas .... pourriez vous m'expliquer cette manip ?

    merci, ++ Tix.

  13. #13
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par tixweb
    pour rajouter le \0, je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pointeursurchar[w+1]="\0"
    C'est le caractère 0, pas la chaine...

    0 ou '\0'

  14. #14
    Membre confirmé
    Profil pro
    Lycéen
    Inscrit en
    Novembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2006
    Messages : 105
    Par défaut
    héhé, merci beaucoup

Discussions similaires

  1. Transformer une String en fonction
    Par Jevil dans le forum MATLAB
    Réponses: 12
    Dernier message: 07/02/2008, 23h46
  2. String to Fonction
    Par jason.boucher dans le forum Général Python
    Réponses: 2
    Dernier message: 26/09/2007, 08h52
  3. Variable String pour fonction Confirm()
    Par calagan99 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 12/09/2007, 08h26
  4. Convertir un string en fonction, possible ou pas
    Par Dextr dans le forum VB.NET
    Réponses: 5
    Dernier message: 31/05/2007, 16h43
  5. [String] pb fonction String[] split(String regex)
    Par Kyti dans le forum Langage
    Réponses: 6
    Dernier message: 05/04/2005, 13h06

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