Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1306 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  les chaines de caracteres

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

les chaines de caracteres

n°1259239
Fab4am
Posté le 05-12-2005 à 16:21:54  profilanswer
 

Bonjour,  
 
je suis en train de faire un exercice en c++, et je rencontre ce probleme :  
je veux mettre des chaines de caracteres dans un tableau, alors comme les chaines de caracteres sont deja des tableaux, j'ai fait un tableau a 2 dimensions, et dans chaque ligne (ou colonne), je veux mettre mes caracteres. Bon mais voila ce que me dit g++ :  
 

Code :
  1. erreur: incompatible types in assignment of ‘char [50]’ to ‘char* [50]’


 
je ne comprends pas trop ou est le probleme. Pourriez vous m'aider?
 
Merci d'avance :)
 
Amandine, une débutante
 
 

mood
Publicité
Posté le 05-12-2005 à 16:21:54  profilanswer
 

n°1259246
Elmoricq
Modérateur
Posté le 05-12-2005 à 16:26:16  profilanswer
 

Euh... en C++, ce serait peut-être plus sympa d'utiliser une collection de string... Genre avec les classes vector et string par exemple (ou pas, j'suis un noob en C++)
 
A moins que tu ne fasses du C ?

n°1259251
Fab4am
Posté le 05-12-2005 à 16:29:57  profilanswer
 

non, je sais qu'apparement cette histoire de char* est pas trop conseillée, mais je suis au tout début de l'apprentissage du c++, ma prof a apparement consciement évité le sujet des chaines de caractères et je dois pourtant les traiter. C'est juste un exercice, donc je cherche surtout a comprendre et a faire avec ce que je comprends. Et la je comprends plus =)
 
Enfin bon donc c'est normalement du c++ que je fais, mais c'est vrai que tout ce qu'on fait a l'air plutot du C...  
 

n°1259253
Fab4am
Posté le 05-12-2005 à 16:30:40  profilanswer
 

en fait j'aimerais réussir a le faire avec les char, et puis quand je verrais mieux les chaines de caracteres je le ferais avec ce qui existe de mieux ;)

n°1259312
HelloWorld
Salut tout le monde!
Posté le 05-12-2005 à 16:56:35  profilanswer
 

Ben en fait, pour faire les choses bien, les string devraient être la première chose à apprendre en C++ :) Sinon c'est du C, pas du C++.
Donc recherche un cours de C sur les chaines de caractères.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°1259352
Fab4am
Posté le 05-12-2005 à 17:20:43  profilanswer
 

j'ai regardé ce qui existait en c, mais ca m'aide pas beaucop plus. Est ce que c'est vraiment possible de faire ce que je veux faire?
est ce que je peux pas attendre l'exercice d'apres pour apprendre les string?

n°1259362
Elmoricq
Modérateur
Posté le 05-12-2005 à 17:24:48  profilanswer
 

On peut, en C. Juste ce n'est pas si simple que ça.
 
Poste le bout de code pointant ton problème, qu'on voie comment tu as fait.

n°1259372
Fab4am
Posté le 05-12-2005 à 17:35:00  profilanswer
 

Alors, le but de l'exercice c'est de faire un annuaire tout bete. Voila le bout de code qui correspond a l'enregistreemnt des données :  
 

Code :
  1. #include <iostream.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. main(void)
  5. {
  6. char nom[50];
  7. char tel[14];
  8. char* Tnom[201][50]; // tableau des noms
  9. char* Ttel[201][14]; // tableau des numeros de telephone
  10. int h;
  11. int i;
  12. int R=9; // réponse au choix principal
  13. for (i=0;i<=200;i++) {
  14. for (h=0;h<=50;h++) { Tnom[i][h] = ""; }
  15. for (h=0;h<=14;h++) {Ttel[i][h] = ""; }
  16. }
  17. /*
  18. cout <<" Tableau des noms : "<<endl;
  19. for (i=0;i<=200;i++) {
  20. for (h=0;h<=50;h++) {
  21. if (Tnom[h][0]!="" )
  22. cout <<Tnom[i][h]<<" - "; } }
  23. cout <<"\n \n Tableau des numeros de telephone : "<<endl;
  24. for (i=0;i<=200;i++) {
  25. for (h=0;h<=14;h++) {
  26. if (Ttel[h][0]!="" )
  27. cout <<Ttel[i][h]<<" - "; } }
  28. */
  29. while (R!=0) {
  30. cout<<"\n Que voulez vous faire ? \n 1- saisir un nouvel abonne \n 2- rechercher le numero d'un abonne a partir de son nom \n 3- afficher la liste des abonnes\n 0- sortir"<<endl;
  31. cin >> R;
  32. if (R==1) { // saisir un nouvel abonne
  33. i=0;
  34. while ((Tnom[i][0]!="" )&&(i<201)) {
  35. i++;
  36. }
  37. nb = i+2;
  38. cout <<"Enregistrement n°"<<i+1<<" - ";
  39. cout <<"Saisissez le nom du nouvel abonne : "<< endl;
  40. cin >> nom;
  41. Tnom[i] = nom;
  42. cout <<"Saisissez le numero du nouvel abonne : "<<nom<< endl;
  43. cin >> tel;
  44. Ttel[i] = tel;
  45. }
  46. }

n°1259373
scol30
Posté le 05-12-2005 à 17:35:22  profilanswer
 

le message que t'indique ton compilo indique seulement que tu essaies d'assigner 2 types de données différents. Je suppose donc que tu as quelque chose comme ça:
 
char**a;
char*b;
 
et tu fais a=b;
 
J'ai résumé la situation mais le message du compilo semble indiquer une mqnip de ce style.
Avec un peu plus de code on pourrait y voir plus clair.
 
Stef
 

Fab4am a écrit :

Bonjour,  
 
je suis en train de faire un exercice en c++, et je rencontre ce probleme :  
je veux mettre des chaines de caracteres dans un tableau, alors comme les chaines de caracteres sont deja des tableaux, j'ai fait un tableau a 2 dimensions, et dans chaque ligne (ou colonne), je veux mettre mes caracteres. Bon mais voila ce que me dit g++ :  
 

Code :
  1. erreur: incompatible types in assignment of ‘char [50]’ to ‘char* [50]’


 
je ne comprends pas trop ou est le probleme. Pourriez vous m'aider?
 
Merci d'avance :)
 
Amandine, une débutante


n°1259374
Fab4am
Posté le 05-12-2005 à 17:35:31  profilanswer
 

(pourquoi ca rajoute tant de lignes blanches???)

mood
Publicité
Posté le 05-12-2005 à 17:35:31  profilanswer
 

n°1259384
Taz
bisounours-codeur
Posté le 05-12-2005 à 17:47:06  profilanswer
 

utilise std::string

n°1259385
scol30
Posté le 05-12-2005 à 17:47:50  profilanswer
 

plutôt curieux comme définition:

Code :
  1. char* Tnom[201][50];


 
avec ça tu définis du char *** ? es tu sur que c'est ce que tu veuilles ?
 
Stef

n°1259386
Fab4am
Posté le 05-12-2005 à 17:49:22  profilanswer
 

scol30 a écrit :

plutôt curieux comme définition:

Code :
  1. char* Tnom[201][50];


 
avec ça tu définis du char *** ? es tu sur que c'est ce que tu veuilles ?
 
Stef


 
Aucuen idée. J'ai deja galéré pour trouver qu'il fallait mettre une etoile pour que ca marche, mais j'ai pas trouvé d'explication réelle sur le net de cette étoile, malgré mes nombreuses recherches. J'ai juste constaté que ca marchait !

n°1259387
Fab4am
Posté le 05-12-2005 à 17:50:02  profilanswer
 

Taz a écrit :

utilise std::string


 
je suis en train de lire les tutos la dessus pour l'utiliser ;)

n°1259390
theshockwa​ve
I work at a firm named Koslow
Posté le 05-12-2005 à 17:56:03  profilanswer
 

Fab4am a écrit :

Aucuen idée. J'ai deja galéré pour trouver qu'il fallait mettre une etoile pour que ca marche, mais j'ai pas trouvé d'explication réelle sur le net de cette étoile, malgré mes nombreuses recherches. J'ai juste constaté que ca marchait !


 :sweat:  
 
"pointeur", ca te dit quelque chose, ou ce mot aussi t'est totalement inconnu ?

n°1259391
Fab4am
Posté le 05-12-2005 à 18:00:10  profilanswer
 

Désolée, je débute et je suis obligée de comprendre toute seule comment ca marche, alors me tapez pas trop fort :)
 
J'ai lu plusieurs fois, pointeur, mais ca ne doit pas correspondre à ce que je crois apparement...

n°1259396
Elmoricq
Modérateur
Posté le 05-12-2005 à 18:07:27  profilanswer
 

http://mapage.noos.fr/emdel :)
 
Mais encore une fois, c'est du C. Si ton but c'est le C++, démarre directement avec du C++ sans passer par la case C.


Message édité par Elmoricq le 05-12-2005 à 18:08:09
n°1259410
Fab4am
Posté le 05-12-2005 à 18:24:37  profilanswer
 

Alors je vais raler auprès de ma prof. On est censé apprendre du C++, mais tout ce que je sais faire est apparement du C (exemple les include du début, mon compilateur me dit que c'est pas vraiment les vrais du c++ !)

n°1259412
Elmoricq
Modérateur
Posté le 05-12-2005 à 18:31:25  profilanswer
 

C'est du vieux C++ tes #include.
 
Maintenant ils s'écrivent plutôt comme ça  :
#include <iostream>
#include <cstdlib>
#include <cstring>

n°1259463
++fab
victime du syndrome IH
Posté le 05-12-2005 à 20:00:55  profilanswer
 

Fab4am a écrit :

Alors je vais raler auprès de ma prof. On est censé apprendre du C++, mais tout ce que je sais faire est apparement du C (exemple les include du début, mon compilateur me dit que c'est pas vraiment les vrais du c++ !)


 
Apprendre le C++ pendant ses études, grace à un prof, on en a tous révé ...
Ta prof a choisi d'introduire les chaines de caractères C-style avant std::string, bon. C'est deux choses qu'un programmeur C++ est obligé de connaitre. Le fait est que les gens qui ont réfléchis à la pédagogie de l'enseignement du C++, et qui ont de l'expérience, optent pour l'apprentissage de std::string dès le début, et les char* pour beaucoup plus tard.  
Pour ça, je crois que tu auras du mal à convaincre ta prof de refaire son cours ...
Mais tu peux toujours lui demander si tu a le droit d'utiliser std::string pour ton tp.
 
Par contre, #include <iostream.h>, le fait que la bibliothèque standard soit dans le namespace std, il faut en parler à la prof, ça ne compilera pas sur un compilateur récent sans gros warning, faut se mettre un peu à jour, c'est pas d'hier quand meme !

n°1259886
blackgodde​ss
vive le troll !
Posté le 06-12-2005 à 11:31:25  profilanswer
 

scol30 a écrit :

plutôt curieux comme définition:

Code :
  1. char* Tnom[201][50];


 
avec ça tu définis du char *** ? es tu sur que c'est ce que tu veuilles ?
 
Stef


 
T tab[x][y] != T **tab


---------------
-( BlackGoddess )-
n°1260791
Fab4am
Posté le 07-12-2005 à 11:19:22  profilanswer
 

bon, finalement j'ai utilisé les std::string comme vous me l'aviez conseillé, et j'ai enfin réussi a finir mon petit programme :)
 
merci à vous tous ! :)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  les chaines de caracteres

 

Sujets relatifs
plusieurs remplacements de chaînes de caractères ds un fic en une seulchaines de caractères en PHP demande d'aide
Cas particulier des noms de repertoire - chaines caracteresquestion sur chaines de caracteres
Comparaison de chaines de caractères (dates)problème de get sur les chaines de caracteres (buffer)
Problème requête : Chaines de caractèresformattage de chaines de caractères
[C++] ajouter dans une multimap des chaines de caractères...comparaison de chaines de caracteres
Plus de sujets relatifs à : les chaines de caracteres


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR