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 :

Conversion de type string en char ?


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Conversion de type string en char ?
    Est il possible de convertir une variable de type string en varaibale de type char ?

    Merci de votre aide

  2. #2
    Membre du Club

    Homme Profil pro
    Expert sécurité informatique
    Inscrit en
    Août 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Expert sécurité informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 33
    Points : 64
    Points
    64
    Par défaut
    Une variable de type "string" ?...
    Ca n'existe pas vraiment ça
    Un "string" c'est juste un tableau de char qui se termine par '\0'
    Donc si tu veux convertir "a" en 'a' par exemple c'est pas dur : tu regardes la première lettre de ton string "a" (je vais pas te faire l'offense de poster la syntaxe exacte )

  3. #3
    Candidat au Club
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    C marrant j'ai encore rien compris

    Pour moi un char est une chaine se terminant par /0.

    Un string est une structure avec un tableau de char caractérisé par un premier élément (char) et une longueur.

    Mais existe il une fonction qui transforme un string en char directement, ou bien faut il faire une boucle qui lie le string et qui pour chaque élément le concatène dans un char ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Points : 542
    Points
    542
    Par défaut
    Le type string n'est pas défini par défaut en C (c'est du C++).

    S'il s'agit d'un type utilisateur, difficile de répondre à la question sans connaitre sa déclaration...
    "La forme même des Pyramides prouve que de tous temps, les ouvriers n'ont jamais pensé qu'à en faire de moins en moins."

    G. CLEMENCEAU

  5. #5
    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
    Citation Envoyé par CoachMac
    C marrant j'ai encore rien compris

    Pour moi un char est une chaine se terminant par /0.

    Un string est une structure avec un tableau de char caractérisé par un premier élément (char) et une longueur.

    Mais existe il une fonction qui transforme un string en char directement, ou bien faut il faire une boucle qui lie le string et qui pour chaque élément le concatène dans un char ?
    Petite piqure de rappel : Les chaînes de caractères en C

  6. #6
    Candidat au Club
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Merci pour ce rappel, et donc existe t'il un moyen de transformer un string en char ?

    Ou la question est stupide ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 464
    Points : 542
    Points
    542
    Par défaut
    Citation Envoyé par CoachMac
    Ou la question est stupide ?
    Ca dépend de ce que tu entends par string
    "La forme même des Pyramides prouve que de tous temps, les ouvriers n'ont jamais pensé qu'à en faire de moins en moins."

    G. CLEMENCEAU

  8. #8
    Membre averti
    Avatar de Foobar1329
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 283
    Points : 387
    Points
    387
    Par défaut
    Hello,

    Citation Envoyé par CoachMac
    Merci pour ce rappel, et donc existe t'il un moyen de transformer un string en char ?

    Ou la question est stupide ?
    Le vaccin est mal passé ?

    A+

  9. #9
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par CoachMac
    Merci pour ce rappel, et donc existe t'il un moyen de transformer un string en char ?

    Ou la question est stupide ?
    Tu ne peux pas.Une string (tableau de caractère terminé par \O) ne rentrera jamais dans un char.

    Un char = 1 octet
    une string = Autant d'octet que de caractère dans le tableau.

    Ca ne peut pas rentrer...

    Qu'est-ce que tu cherches a faire exactement explique ton probléme.
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  10. #10
    Membre averti
    Avatar de Foobar1329
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 283
    Points : 387
    Points
    387
    Par défaut
    Hello,

    Citation Envoyé par hegros
    Tu ne peux pas.Une string (tableau de caractère terminé par \O) ne rentrera jamais dans un char.
    Citation Envoyé par hegros
    Un char = 1 octet
    Non, un byte (multiplet en français), qui souvent il est vrai vaut un octet.

    Citation Envoyé par hegros
    une string = Autant d'octet que de caractère dans le tableau.
    Je dirais plutôt : il s'agit en mémoire d'une suite contigüe de caractères terminée par un caractère particulier, le caractère 'terminateur de chaine' ('\0' => caractère nul, baqueslache-zéroi, zéro tout court, etc...).

    Mais bon, il n'y a pas de type chaine de caractères en C, donc peut-on vraiment en parler ?

    A+

  11. #11
    Membre habitué Avatar de _kal_
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Points : 156
    Points
    156
    Par défaut
    Citation Envoyé par Foobar1329
    Non, un byte (multiplet en français), qui souvent il est vrai vaut un octet.
    1 byte = 8 bit = 1 octet. C'est ce que j'ai toujours compris

  12. #12
    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
    Citation Envoyé par _kal_
    1 byte = 8 bit = 1 octet. C'est ce que j'ai toujours compris
    Pas en C : http://emmanuel-delahaye.developpez.com/init_c.htm#byte

  13. #13
    Membre habitué Avatar de _kal_
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Points : 156
    Points
    156
    Par défaut
    Ça alors ! J'aurai jamais pensé

    Ceci depend-il de l'implémentation ?

  14. #14
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Uniquement de la machine, rien n'empêche un constructeur de faire un byte avec 10 bits.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  15. #15
    Membre habitué Avatar de _kal_
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Points : 156
    Points
    156
    Par défaut
    Citation Envoyé par Trap D
    Uniquement de la machine, rien n'empêche un constructeur de faire un byte avec 10 bits.

    Ok

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par CoachMac
    Pour moi un char est une chaine se terminant par /0.
    Mais en realite un char est un type entier couvrant une plage minimale garantie de -127 a 127 ou de 0 a 255 selon l'implementation. Il y donc une grave confusion dans ton esprit.
    Un string est une structure avec un tableau de char caractérisé par un premier élément (char) et une longueur.
    Rien de tel en c natif. Par contre, 'string' designe un tableau de char initialise par des valeurs representant des caracteres et terminee par un 0.

    Il est urgent que tu revoies le vocabulaire du langage C, sinon on ne va pas se comprendre.
    Mais existe il une fonction qui transforme un string en char directement, ou bien faut il faire une boucle qui lie le string et qui pour chaque élément le concatène dans un char ?
    Reformule ca avec le vocabulaire correct, parce que je ne comprend ni la phrase ni tes intentions.
    Pas de Wi-Fi à la maison : CPL

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par _kal_
    1 byte = 8 bit = 1 octet. C'est ce que j'ai toujours compris
    C'est une vision reductrice et simplificatrice du monde...

    En C, le plus petit element adressable est le byte. Il doit faire au moins 8 bits. Un char a exactement la taille d'un bye.

    Un octet est un element d'information d'exactememt 8 bits de longueur. Ce terme appartient plutot au monde des telecoms ou pour specifier des fichiers ou toutes donnees organisees en blocs de 8 bits. On ne l'utilise pas en C.
    Pas de Wi-Fi à la maison : CPL

  18. #18
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Donc, on pourrait résumer par "1 char = 1 byte >= 8 bits = 1 octet" ?
    (en C uniquement, bien entendu).

    PS:
    Citation Envoyé par Emmanuel Delahaye
    Un char a exactement la taille d'un char.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  19. #19
    Candidat au Club
    Inscrit en
    Août 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Il est clair que j'ai besoin de révision. Je n'ai plus pratiqué le C depuis trop longtemps.

    Dans tous les cas j'ai trouvé avec votre aide et les différents liens la solution à mon problème et je vous remercie beaucoup.

Discussions similaires

  1. conversion de types string char[]
    Par koukou11 dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 02/03/2011, 03h01
  2. conversion de type string to ref
    Par djezair31 dans le forum Langage
    Réponses: 1
    Dernier message: 09/10/2007, 13h25
  3. Réponses: 5
    Dernier message: 21/08/2007, 11h33
  4. conversion d'un string en char *
    Par ferry.jules dans le forum C++Builder
    Réponses: 15
    Dernier message: 12/05/2006, 22h12
  5. (Problème avec...) conversion de std::string en char
    Par crossbowman dans le forum SL & STL
    Réponses: 7
    Dernier message: 05/03/2006, 19h54

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