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 :

Concatener caractere et chaine de caracteres


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 16
    Points
    16
    Par défaut Concatener caractere et chaine de caracteres
    Bonjour,
    Comme l'intitulé le dit, j'aimerais pouvoir concaténer un caractère à une chaine de caracteres.
    Par exemple, ma chaine est "salu" et le caractere à concaténer est 't'.
    J'ai essayé avec la fonction strcat mais elle prend apparemment 2 chaines en paramètre.

    Merci de vos futures aides.
    Flo.

    P.S : un peu plus précisément, j'ai un char *intitule = "";
    Puis je lis caractere par caractere (obligatoire) d'un fichier texte qui contient par exemple "salut" et j'aimerais qu'intitule contienne donc à la fin "salut".

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Points : 1 750
    Points
    1 750
    Par défaut
    P.S : un peu plus précisément, j'ai un char *intitule = "";
    Ceci déclare un pointeur et non un tableau. Si tu veux qu'il pointe sur une chaine modifiable, il faut d'abord allouer dynamiquement de la mémoire (malloc) d'une taille suffisante.

    J'ai essayé avec la fonction strcat mais elle prend apparemment 2 chaines en paramètre.
    Il est toujours possible de bidouiller en créant une chaine à partir d'un caractère. Exemple (à adapter) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    char chaine[256]="salu";
    char chaine2[2];
    (...)
    chaine2[0]='t';
    chaine2[1]='\0';
     
    ou :
     
    char chaine[256]="salu";
    char chaine2[2]="t";
    Puis en utilisant strcat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strcat(chaine,chaine2);

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2009
    Messages : 153
    Points : 160
    Points
    160
    Par défaut
    Là comme ça, je dirai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    inutile = realloc (inutile, (strlen(inutile) + 1 + 1) * sizeof (char));
    inutile[strlen(inutile)] = <caractère à insérer>;
    inutile[strlen(inutile)+1] = '\0';

  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    On peut aussi utiliser strncat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    char chaine[256] = "salu";
    char caractere = 't';
     
    strncat(chain, &caractere, 1);

  5. #5
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Donc déjà intitule ne doit pas être un pointeur sur UN CARACTERE (char * intitule) mais un tableau DE CARACTERES (char intitule[50] par exemple). En résumé, ce sera : char intitule[50] = "";

    Si tu veux utiliser strcat, pévois un tableau de 2 caractères, char caractere_lu[2] par exemple. Dans caractere_lu[1], tu mettras '\0'. Dans caractere_lu[0], le caractère que tu viens de lire depuis le fichier. Après chaque lecture, tu fais alors ensuite strcat(intitule, caractere_lu).

    Sinon, place tout simplement chaque caractère lu dans la bonne case du tableau intitule.

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Merci beaucoup à tous pour votre aide. J'étais bloqué depuis quelques jours et j'avais même presque abandonné l'idée.
    Encore merci à tous!
    Flo.

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

Discussions similaires

  1. Concatenation de 2 chaines de caractere
    Par chfakht dans le forum C
    Réponses: 6
    Dernier message: 01/10/2013, 13h57
  2. Tableau 1D chaine de caracteres en chaine de caracteres
    Par nordine24000 dans le forum LabVIEW
    Réponses: 4
    Dernier message: 09/06/2010, 08h50
  3. Réponses: 4
    Dernier message: 03/11/2006, 17h11
  4. Trouver caractere dans chaine de caractere aléatoire
    Par johnkro dans le forum Langage
    Réponses: 1
    Dernier message: 01/08/2006, 17h51
  5. Concaténation de chaine de caractères
    Par joy dans le forum Linux
    Réponses: 5
    Dernier message: 07/07/2003, 13h03

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