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) !!!
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) !!!
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.
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"
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(); }
@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:
(strict respect de la consigne
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; })
Partager