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 :

Concaténation de chaînes


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 16
    Par défaut Concaténation de chaînes
    Bonjour à vous tous!
    S'il vous plaît, je me demandais si on voulait faire une fonction void concat(mot 1,mot 2,mot 3) sans utiliser la bibliothèque string au fait le type mot est un tableau de caractère
    à quoi cela va ressembler ?
    Merci

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Bonjour,

    Tu va devoir faire un malloc ou realloc pour ta chaîne destinatrice.
    Ensuite, il s'agira de faire deux copies consécutives :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    char * resultat;
    char * source1;
    char * source2;
     
    //allocation de resultat
     
    while( *resultat++ = *source1++ ); //implémentation possible de strcpy.
    resultat--; // on va réécrire sur le '\0' final
    while(*resultat++ = *source2++ );
    Information :
    - l'opérateur = renvoie la valeur deux deuxième opérande (ici *source1++ et *source2++ ;
    - l'opérateur ++ postfixe ( source1++) enregistre la valeur de la variable, l'incrémente puis retourne la valeur enregistrée ie source1++ retourne l'ancienne valeur de source1;
    - le caractère de fin de chaîne est '\0' qui est 0x00 et qui vaut false.

    Après essaye de voir ce qu'il se passe avec un exemple simple pour comprendre comment cela fonctionne^^

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2012
    Messages : 82
    Par défaut
    Bonjour,

    Juste pour préciser l'allocation comment tu peux la faire car après la méthode de Neckara est bien (peut être un peu compliqué pour une débutante... mais bon ya les explications avec).

    Tu dois calculer le nombre de caractères de tes chaines à concaténer les additionner et rajouter 1 pour le '\0'.

    Si tu n'as pas le droit au bibliothèque de string ça ressemblera à ça :

    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
    int   i = 0;
    int   size = 0;
     
    while (source1[i] != '\0')
        i++;
     
    size = i;
     
    i = 0;
    while (source2[i] != '\0')
        i++;
     
    size = size + i + 1;  //le "+ 1" est pour le caractère '\0'
     
    // Voila t'as ton bon nombre de caractères à malloc.

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 16
    Par défaut Chaîne de Caractères
    Neckara, DrDarko Merci <3

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 16
    Par défaut Chaîne de Caractères
    bonjour
    Pour affecter une chaîne caractère par caractère à une chaîne vide j'utilise ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     i=0;     
             w[i]==u[i]; 
              i++;
    après j'affiche le w[i];
    qu'est ce qui ne vas pas

  6. #6
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    == sert à faire des comparaisons.
    Pour faire des affectations, il faut utiliser =.

Discussions similaires

  1. Concaténation de chaînes de caractères
    Par Sakapatate dans le forum Débuter
    Réponses: 15
    Dernier message: 16/06/2007, 22h19
  2. Concaténation de chaîne de caractères
    Par Ardely dans le forum Delphi
    Réponses: 6
    Dernier message: 31/01/2007, 19h10
  3. Comment concaténer des chaînes issues d'un fichier ini ?
    Par Neit_Sabes dans le forum Framework .NET
    Réponses: 10
    Dernier message: 27/09/2006, 09h28
  4. concaténation de chaîne de caractère
    Par jh0483 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/08/2005, 17h10
  5. [XSLT 1.0] Concaténation de chaînes
    Par tofita_49 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 25/07/2005, 18h34

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