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éner des lettres


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Par défaut Concaténer des lettres
    Bonjour ,

    Est-ce possible de concaténer des lettres de type caractère pour avoir un seul mot composé, pour les chaines de caractères ya aucun souci avec (strcat) !!!

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 152
    Billets dans le blog
    4
    Par défaut
    Salut,

    strcat ? c'est du C.
    On est sur un forum C++, ou tu t'es trompé de forum ?

    Concaténer des caractères, ça s'appelle une chaîne de caractères justement
    ou bien plus communément une string, et c'est fourni dans la std
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre actif
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Par défaut strcat C++
    Salut, pour votre information strcat c du C++
    http://www.cplusplus.com/reference/cstring/strcat/

    La question demandée c d'écrire un programme en C++ qui lit trois caractères C1,C2,C3 puis affiche la concaténation de ces caractères.
    Exemple : C1 = 'a' , C2 = 'i' , C3 = 'r' ; Afficher : "air"

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 760
    Par défaut
    Citation Envoyé par maiza_med Voir le message
    Salut, pour votre information strcat c du C++
    http://www.cplusplus.com/reference/cstring/strcat/
    Site sur lequel on peut lire "C library"...

    Citation Envoyé par maiza_med Voir le message
    La question demandée c d'écrire un programme en C++ qui lit trois caractères C1,C2,C3 puis affiche la concaténation de ces caractères.
    Exemple : C1 = 'a' , C2 = 'i' , C3 = 'r' ; Afficher : "air"
    Donc ni besoin de strcat, ni d'une quelconque fonction de concaténation. Il suffit d'afficher les 3 caractères (std::cin et std::cout suffisent).

  5. #5
    Membre actif
    Inscrit en
    Février 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 23
    Par défaut
    dis moi pas que c'est pas vrai : "quand quelqu'un te demande de faire la concaténation de 2 chaines de caractères tu vas pas me dire que tu vas lui répondre de les afficher par cout<<ch1<<ch2; quand même"

    Exemple :
    écrire un programme qui lit trois caractères C1,C2,C3 (on suppose que tous les caractères sont des lettres Minuscules). Puis affiche la concaténation de ces caractères en Majuscule.
    Exemple : C1 = 'a' , C2 = 'i' , C3 = 'r' ; la concaténation en Majuscule donne : "AIR"

    Solution : Une lettre (type caractère) est inclue dans le (type chaine de caractères)

    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
    #include<conio.h>
    #include<iostream.h>
     
    char c1[100],c2[100],c3[100];
    main() {
                   cout<<"Entrer trois lettres en minuscule :";
                   cin>>c1>>c2>>c3;
     
                     c1[0]=c1[0]-32;
                     c2[0]=c2[0]-32;
                     c3[0]=c3[0]-32;
     
                   cout<<"La concaténation en majuscule  est :"<<(strcat(strcat(c1,c2),c3));
                   getch();
           }

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 760
    Par défaut
    Citation Envoyé par maiza_med Voir le message
    dis moi pas que c'est pas vrai : "quand quelqu'un te demande de faire la concaténation de 2 chaines de caractères tu vas pas me dire que tu vas lui répondre de les afficher par cout<<ch1<<ch2; quand même"
    @Bousk à déjà répondu à cette partie: std::string.
    Sauf que l'énoncé ne demande pas de faire une concaténation mais d'afficher la concaténation de 3 lettres sans imposer une quelconque implémentation.

    Je me permet de commenter ton code (c'est du c++, hein ?).

    #include<conio.h> -> pas standard et il manque l'espace avant le chevron d'ouverture.
    #include<iostream.h> -> pas standard, en c++ c'est <iostream> (depuis avant ma naissance il me semble...).
    char c1[100],c2[100],c3[100]; -> variables globales, très sales. Taille extravagante par rapport au besoin.
    main() { -> le proto de main est au moins int main().
    cin>>c1>>c2>>c3; -> ce code ne demande pas 3 lettres mais 3 chaînes de caractères. Risque d'overflow car utilisation de char* sans indiquer la taille limite de lecture (std::setw(2)/std::cin.width(2) (2 pour prendre en compte le caractère nul de fin)).
    getch(); -> pas standard et il suffit de configurer son IDE.
    Et il manque l'usage du namespace std... Mais j'imagine qu'en utilisant un vieux compilateur il ne faut pas s’attendre à grand chose

    Ma solution:

    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
    16
    #include <iostream>
     
    int main() {
      using std::size_t;
     
      const size_t nb_characters = 3;
      char characters[nb_characters + 1]{};
     
      std::cout << "Entrer " << nb_characters << " lettres en minuscule :";
      for (size_t i = 0; i < nb_characters; ++i) {
        std::cin >> characters[i]; //je fais grâce des vérifications...
        characters[i] = static_cast<char>(characters[i] - 32);
      }
     
      std::cout << "La concaténation en majuscule est : " << characters;
    }
    (strict respect de la consigne )

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

Discussions similaires

  1. transformer des lettres en chifres
    Par hassanibi dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 06/09/2005, 08h54
  2. [débutant] concaténer des champs.
    Par goony dans le forum Langage SQL
    Réponses: 15
    Dernier message: 25/08/2005, 08h28
  3. Concaténer des lignes d'enregistrements dans une colonne
    Par dany13 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 08/07/2005, 21h56
  4. Comment entrer des lettres accentuées sous postgresql ?
    Par Chihuahua dans le forum Requêtes
    Réponses: 11
    Dernier message: 28/08/2003, 08h04

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