Répondre à la discussion
Affichage des résultats 1 à 18 sur 18

[C] Concaténer chaine de caractère + caractère



  1. #1
    Lechero

    [C] Concaténer chaine de caractère + caractère


    ------

    Bonjour,

    je souhaite, à partir d'une chaîne donnée (par exemple, azerty), afficher ceci :
    a
    az
    aze
    azer
    azert
    azerty

    J'ai donc créer une fonction mais je ne sais pas comment procéder ...
    Code:
    void affichemoins (const char* chaine, int length)
    {
        int i=0;
        char doublon[length];
    
        while (chaine[i]!='\0')
        {
            doublon=doublon + "chaine[i]";
            printf("%s",doublon);
            i++;
        }
    }
    J'ai conscience que l'opérateur "+" (ligne 8) ne peut pas marcher, mais je ne sais vraiment pas quoi faire d'autre.
    J'ai créer une deuxième chaine (doublon) qui afficherait, par exemple, azer et à laquelle on rajoute la lettre manquante, (ici, t).

    Merci d'avance !

    -----
    A vaincre sans péril, on triomphe sans gloire (Corneille).

  2. Publicité
  3. #2
    Paraboloide_Hyperbolique

    Re : [C] Concaténer chaine de caractère + caractère

    Bonjour,

    Je vous recommanderais plutôt d'utiliser la fonction "strcat" dans la bibliothèque "string.h": http://www.cplusplus.com/reference/cstring/strcat/

  4. #3
    whoami

    Re : [C] Concaténer chaine de caractère + caractère

    Bonjour,

    Effectivement, il vaut mieux utiliser les fonctions existantes, en particulier pour la manipulation des chaînes, opérations très fréquentes.

    À propos de chaîne, si tu veux faire une fonction comme celle que tu envisage, n'oublie pas que le pointeur passé à ta fonction doit être initialisé, et pointer vers une zone assez étendue pour stocker le résultat.
    Et à ce sujet, la déclaration de paramètre const char* chaine t'interdira toute modification.

  5. #4
    Lechero

    Re : [C] Concaténer chaine de caractère + caractère

    Bonjour,

    merci pour vos réponses.

    Néanmoins, je cherche une solution sans passer par la biblio string.h; en effet, j'ai un devoir à la rentrée, et je n'aurais pas le droit de l'utiliser, je cherche donc une solution sans string.h ...
    A vaincre sans péril, on triomphe sans gloire (Corneille).

  6. A voir en vidéo sur Futura
  7. #5
    whoami

    Re : [C] Concaténer chaine de caractère + caractère

    Bonjour,

    Alors, il suffit d'apprendre comment sont représentées les chaînes de caractères en C. J'insiste là-dessus, car ta question même montre que tu ne le sais pas, et vouloir bricoler quelque chose sans avoir compris comment ça fonctionne ne te conduira qu'à une seule destination : le mur.

    Les sites qui en parlent sont nombreux, il n'y en a pas pour longtemps à trouver.

  8. #6
    Lechero

    Re : [C] Concaténer chaine de caractère + caractère

    Salut

    j'ai appris à l'aide du site du zéro. Seulement, ils utilisent les fonction inclues dans string.h, or, mon prof ne veut pas que l'on se serve de ces fonctions, et
    découvrir les chaînes (et tableaux) seul c'est assez dûr !

    Je sais qu'une chaîne de caractères est un tableau, dont chaque case contient une lettre ou un espace, qu'à la fin de chaque chaîne se trouve le caractère de fin de chaîne \0 . Je sais afficher une chaîne, une lettre, compter le nombre de caractères, mais pas plus. Cet exo d'entrainement me parraissait simple, et j'espèrais que vous m'aidiez en me donnant des pistes
    A vaincre sans péril, on triomphe sans gloire (Corneille).

  9. Publicité
  10. #7
    Jack
    Modérateur

    Re : [C] Concaténer chaine de caractère + caractère

    le problème vient aussi du titre de ton énoncé. Pourquoi parles-tu de concaténation alors que ton problème ne consiste qu'a afficher le contenu de ta chaine, en commençant par une lettre, puis en ajoutant une nouvelle lettre à l'affichage jusqu'à afficher la chaine au complet.
    Le problème n'est donc pas un problème de modification de chaine, mais juste un problème d'affichage.

    Il faudra une boucle qui contrôlera l'affichage des ligne, boucle dans laquelle une autre contrôlera le nombre de caractères à afficher.

    A+

  11. #8
    Lechero

    Re : [C] Concaténer chaine de caractère + caractère

    Bonsoir,

    merci, j'ai tenté cette solution déjà, mais je n'ai pas réussi
    avec un while et un for, j'ai tenté mais cela n'a pas marché ...

    D'après d'autres membres, il me manque des compétences apparemment ... je suis en 1er semestre de DUT Informatique seulEmement, sans VRAIS cours de langage C ....
    A vaincre sans péril, on triomphe sans gloire (Corneille).

  12. #9
    Jack
    Modérateur

    Re : [C] Concaténer chaine de caractère + caractère

    montre toujours ce que tu as fait ...

  13. #10
    Jack
    Modérateur

    Re : [C] Concaténer chaine de caractère + caractère

    je suis en 1er semestre de DUT Informatique seulEmement, sans VRAIS cours de langage C ....
    tu as donc du faire pas mal d'algo. Si tu n'as plus qu'un problème de syntaxe, tu vas vite y arriver.

    A+

  14. #11
    Lechero

    Re : [C] Concaténer chaine de caractère + caractère

    Justement !

    En algo, notre prof (si on peut appeler ça une prof !) ne nous a enseigné que des algos avec des nombres entiers ! Or, nous manipulons maintenant des caractères / chaînes de caractères, et (nous ?) je ne sais pas comment procéder...

    J'ai donc initialisé une deuxième chaîne qui affichera :
    rien
    rien + a = a
    a + z = az
    az + e = aze
    ...

    seulement je ne vois pas comment garder cette chaine...

    SVP aidez moi ou donnez moi quelques pistes, je suis vraiment bloqué !
    A vaincre sans péril, on triomphe sans gloire (Corneille).

  15. #12
    bzh_nicolas

    Re : [C] Concaténer chaine de caractère + caractère

    Si tu as fais de l'algo depuis la rentrée tu as les connaissances de bases suffisantes. Une chose à savoir pour ton problème quand même, il n'y a pas de vrai type string en C, il s'agit de tableau de caractère.
    Quand tu mets "azerty" dans une chaine (un tableau de char donc), tu remplis chacune des cases du tableau avec l'un des caractère. Afficher "az" revient à afficher les 2 premiers élément du tableau et ainsi de suite.

  16. Publicité
  17. #13
    Lechero

    Re : [C] Concaténer chaine de caractère + caractère

    Bonsoir,

    merci, mais comment afficher le(s) terme(s) précédent(s) + le nouveau terme ?

    Je cherche depuis ce matin mais je bloque !
    A vaincre sans péril, on triomphe sans gloire (Corneille).

  18. #14
    Jack
    Modérateur

    Re : [C] Concaténer chaine de caractère + caractère

    merci, mais comment afficher le(s) terme(s) précédent(s) + le nouveau terme ?
    On fait une boucle dans laquelle chaque itération affichera un caractère.

    A+

  19. #15
    polo974

    Re : [C] Concaténer chaine de caractère + caractère

    man 3 printf
    (bon, si t'es pas sous unix like, regarde la doc de printf, là où elle est...)

    regarder du coté formatage (dans printf bien sûr...) et plus particulièrement %.*s...

    que veut dire % ?

    que veut dire %s ?

    que veut dire . après le % ?

    que veut dire %.5s ?

    et maintenant, on rend tout ça variable:

    que veut dire * dans %.* ?

    et donc au final que veut dire %.*s ?

    bref, en 3 lignes de code (n'ouvre que pour vérifier, sinon tu n'apprendras pas à décortiquer la doc...):
     Cliquez pour afficher
    Jusqu'ici tout va bien...

  20. #16
    Lechero

    Re : [C] Concaténer chaine de caractère + caractère

    merci beaucoup !

    désolé de répondre tard, mais j'ai cherché à bien comprendre (précision, format, modificateur,...) + je me suis entraîné.

    Merci beaucoup !
    A vaincre sans péril, on triomphe sans gloire (Corneille).

  21. #17
    polo974

    Re : [C] Concaténer chaine de caractère + caractère

    Hé, ne te désole pas ! ! !
    Il semble que tu as potassé la doc, travaillé et compris la chose, donc c'est tout bon...

    et merci du retour...
    Jusqu'ici tout va bien...

  22. #18
    Electro_Red

    Re : [C] Concaténer chaine de caractère + caractère

    Citation Envoyé par Lechero Voir le message
    Bonsoir,

    merci, mais comment afficher le(s) terme(s) précédent(s) + le nouveau terme ?

    Je cherche depuis ce matin mais je bloque !
    Bonjour à toi,
    si tu cherches une solution avec les boucles, tu peux essayer cela:

    je déclare un tableau de type char str[6]={'a','z','e','r','t','y'} et une variable pour l'affichage:
    char str[6]={'a','z','e','r','t','y'};
    char aff;
    si je met deux boucles:
    1ere pour parcourir ma chaine=> donne la taille d'une 2ème boucle pour l'affichage:

    Code:
    int i,j;
    for (i=0;i<6;i++){
         for (j=0;j<=i;j++){
         aff=str[j];
         printf("%c",aff);
                          }
          printf("\n");
          }
    Bonne journée
    Dernière modification par JPL ; 26/01/2013 à 14h04. Motif: Ajout de la balise Code (#) pour garder l'indentation
    "Et au-dessus de tout homme détenant science, il y a en un plus savant"

  23. Publicité

Discussions similaires

  1. chaîne de caractère
    Par hinda7 dans le forum Programmation et langages, Algorithmique
    Réponses: 6
    Dernier message: 02/04/2012, 19h30
  2. chaine de caractère
    Par dalida1111 dans le forum Programmation et langages, Algorithmique
    Réponses: 27
    Dernier message: 01/01/2012, 17h38
  3. chaîne de caractère
    Par dalida1111 dans le forum Programmation et langages, Algorithmique
    Réponses: 15
    Dernier message: 01/01/2012, 15h06
  4. Réponses: 4
    Dernier message: 16/02/2010, 20h45
  5. Chaine de caractère C++
    Par lui dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 06/03/2008, 20h29