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

 


Dernière réponse
Sujet : [C, C++] faire un array dynamique de strings...
*syl* Qu'est-ce qu'il fout dans Cobol ce topic !?

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
*syl* Qu'est-ce qu'il fout dans Cobol ce topic !?
MrX [:sterezis]  ca c un troll  :D
bjone oui je sais j'avais envie de troller (quoique....)
bjone un truc laid..... (très difficile d'imaginer plus laid, même l'assembleur est plus naturel)
MrX lol j'ai encore fait mon sujet a le vas vite alors j'ai pas fait gaffe et pis vala... au fait cobol c koi ??
Mara's dad En fait le problème vient du fait que le message est dans la rubrique "cobol" !
 
OK, je sors . . .
tanguy

MrX a écrit a écrit :

j'ai encore dit une connerie comme d'hab... sans espoir... merci du conseil  



 
 
nan t'as fait comme la majorite des gens qui connaissent pas et donc qui subisent le mauvais design du C et donc du C++  
pour programmer proprement en C et en C++ il faut le vouloir, en Java par exemple c'est deja beaucoup plus facile
 
tout le monde a ete comme toi au depart et beaucoup le sont encore avec plusieurs annees d'experience parcequ'ils ne sont pas aware :)  
le pire c'est de voir qu'il y a de nombreux projects qui sont actuellement developpes en C++ avec des char *  
 
pourtant le nombre de bugs qui pourraient etre supprime en remplacant les char* par des string...

MrX j'ai encore dit une connerie comme d'hab... sans espoir... merci du conseil
tanguy

MrX a écrit a écrit :

je prefere le char *



 
NAN surtout pas !
 
il faut bruler les char *
 
habitue toi a programmer avec les string
 
- c'est beaucoup plus simple et de beaucoup
- c'est plus secure (pas de buffer overrun ou overflow)
- pas de fuite memoire car on doit pas gerer les malloc() et free()
- plus puissant : pleins de methods integrees utiles
- facilement convertissable avec la methode c_str()
- surement pleins d'autres avantages
 
le truc bien pourris en C c'est les char *
dire que Pascal qui a ete invente avant le C possede une classe string...
 
aouais au passage, y'a quelqu'un qui sait par quoi est remplace strtok() pour la classe string ?
parceque strtok ca sucks, y'a du static a l'interieur donc impossible de multithreader et puis ca fonctionne avec des char *, berk
 

MrX c assez semblable, je prefere le char * . Thx pour l'aide
BENB avec le char *  
 

Code :
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <vector>
  4. using namespace std;
  5. void main()
  6. {
  7.    vector<char *> a;
  8.    a.reserve(10);
  9.    int i;
  10.    
  11.    for (i = 0; i<10; i++)
  12.    {
  13.    a.push_back(new char[50]);
  14.    itoa(i, a[i], 10);
  15.    strcat(a[i], " long long string" );
  16.    cout<<a[i]<<endl;
  17.    }
  18.    system("PAUSE" );
  19. }

 
 
avec la string
 

Code :
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <vector>
  4. #include <string>
  5. using namespace std;
  6. void main()
  7. {
  8.    vector<string> a;
  9.    a.reserve(10);
  10.    int i;
  11.    
  12.    for (i = 0; i<10; i++)
  13.    {
  14.    char tempo[50];
  15.    itoa(i, tempo, 10);
  16.    a.push_back(tempo)
  17.    a[i].append(" long long string" );
  18.    cout<<a[i]<<endl;
  19.    }
  20.    system("PAUSE" );
  21. }

 
 
 
 
 

MrX vector<char *> je vien d'essayer, ca marche trés bien, c mieux la string de chez STL ??
MrX aye j'ai lu un truc sur le stl, j'ai pigé ! (c rare par malheur...)
 
Merci pour le lien je vais m'y collé.
 
reserve connaissais po, y avait que resize dans mon tutorial
 
ben vala merci
BENB C'est une partie de la library standard du C++... d'ou tu sort ton vector d'ailleurs...
 
a ce propos #include<vector.h> ca marche ?
Ce devrait-etre <vector> sans le .h
 
de meme pour les string #include<string>
 
http://www.sgi.com/tech/stl/basic_string.html
 
sinon pour le vector evite le resize qui ajoute des elements ert prefere le reserve()...
 
sinon tu peux aussi faire des vector<char *>...
El_gringo

MrX a écrit a écrit :

ben justement moi etre ignorant, moi pas connaitre hihi... STL, c t'y quoi dont ??




 
Standard Template Library, vector en fait partie !
C'est la librairie standard du C++

MrX ben justement moi etre ignorant, moi pas connaitre hihi... STL, c t'y quoi dont ??
BENB Pourquoi ne pas utiliser les string de la STL ?
MrX euh vala, moi j'utilise la class vector de vector.h pour mes array dynamique, mais quand je ve faire un truc du genre:
 vector<char[50]> string; il me pond un troll.... Par example quand je ve redimensionner l'array, il ve fait une erreur de compilation... et c'est po bo, snif
 
J'ai fait un truc moi meme qui marche mais c trés laid :
 

Code :
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <vector.h>
  4. struct string
  5. {
  6.     char *str;
  7. };
  8. void main()
  9. {
  10.     vector<string> a;
  11.     a.resize(10);
  12.     int i;
  13.    
  14.     for (i = 0; i<10; i++)
  15.     {
  16.     a[i].str = new char[50];//je doit faire ca pour chaque element de l'array, au secours !
  17.     itoa(i, a[i].str, 10);// pour verfier si l'array dynamique marche
  18.     strcat(a[i].str, " long long string...." );//pour verifier que je pe mettre plein de characteres...
  19.     cout<<a[i].str<<endl;
  20.     }
  21.     system("PAUSE" );
  22. }


 
Ben vala, j'avais prevenu c'est trés moche... Il doit y avoir bien plus propre que ca pour faire ca que je veux, a moins qu'il y ai une class faite exprés pour ca, a moins que j'utilise les vector n'importe comment, ou qu'il y ai mieux que les vector...


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)