Peut-on donner une longueur fixe à std::string [Résolu]

Signaler
Messages postés
115
Date d'inscription
samedi 27 décembre 2003
Statut
Membre
Dernière intervention
11 mai 2009
-
Messages postés
115
Date d'inscription
samedi 27 décembre 2003
Statut
Membre
Dernière intervention
11 mai 2009
-
Salut à tous,
Je voudrais savoir si c'est possible d'imposer une longueur fixe à la variable suivante : std::string var ?

17 réponses

Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
16
bon donc au niveau des fonctions qui pourront modifier la taille de ta chaine tu a par exemple le +.
tu derives string en CString par exemple, et tu ecris la fonction

string CString::operator + (string Str)
{
cerr << impossible de concaténer deux chaines de type CString;

}

(je suis pas sur du profil)
ainsi, lorsque l'utilisateur va essayer de concatener deux cstring, au lieu d'avoir l'effet escompté et de concaténer les string en appelant la fonction membre de string, il va appeler celle de cstring qui "cache" lexistence de celle originale, et donc la concaténation n'est plus possible, a la place de fonctionner comme dans les strings, elle envoie un message d'erreur. mais attention, il n'ya pas que le +, tu as aussi les fonctions membbres insert, append, etc.....
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
il me semble que nom, d'ailleur c'est pas dans a logique, tu n'a pas a te soucier de la taille
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
16
tu peux toujours tester a chaque nouvelle affectation que la taille n'excede pas celle prévue...ca depend ce que tu veux faire.
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
fé un héritage et surcharge les opérateurs de créations & de concaténation.

++

Magic Nono: l'informagicien!
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
ca risque d'etre dur, std::string n'a pas d'interface virtuelle
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
16
cest pas bien grave, jai deja derivé string plusieurs fois jamais eu de problemes. tu derives string, tu réecris les constructeurs en appelant le constructeur equivalent de la classe mere, et tu tu surcharges les fonctions qui modifient la longueur de la chaine, et basta
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
voilu pil poil ce que G dit

djl> vraiement po de pb...
leProv> merci de m'appuyer

++

Magic Nono: l'informagicien!
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
pas de probleme tant qu'il s'agit de surcharge
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
16
c'est effectivement ce que voulais dire magic_nono.....j'espere en ts cas que cest clair pour marik tout ca. sinon demande, on te donnera des pistes plus claire....
Messages postés
115
Date d'inscription
samedi 27 décembre 2003
Statut
Membre
Dernière intervention
11 mai 2009

lu,
Merci pour tout ces conseils mais ca serait sympa d'avoir un petit exemple d'utilisation des surcharges d'opérateur pour modifier la longeur de la chaine.
Merci d'avance
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
char mastring[48];

rapide comme surcharge et bien fixe en longueur, non ?

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
115
Date d'inscription
samedi 27 décembre 2003
Statut
Membre
Dernière intervention
11 mai 2009

BruNews=>je n'utilise pas les char
Merci pour tes conseils leprov je crois que j'ai compris la méthodes
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
BruNews > C'est effectivement la premiere chose à laquelle on a ts pensé, mais, vu qu'il s'agit d'une base de chez base...
on est parti sur plus intéressant, dsl

marik> pb résolu dc
parcours bien les msdn ou tout autre référence pour etre sur de ne pas oublier une seule surcharge... car un oubli mettrait ton idée à plat.

leProv & marik > je vous déconseille d'employer le nom CString car cela risque d'amener des confusions avec les CString des MSDN.

Marik> mm si ce n'est pas le cas ds tes prg... je te conseille vraiement d'éviter...
personnellement, j'ai appelé mes bibliotheques avec un B (comme Bibli!)
=> BString (cf ds mes srces....)

Au fait, peux tu nous expliquer l'utilité de ce string fixe

Bonne prog

Magic Nono: l'informagicien!
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
16
c'est quoi les CString msdn? jamais entendu parler (je debute a peine la prog windows, jusqu'a aujourd'hui jai juste fait de la prg unix...et j'ai pris l'habitude de faire debuter mes classe par C pour classe perso, mais si ds msdn ca existe.....bon bah on va changer ces habitudes de unixien.....
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
7
la bibliotheque string des mfc
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
effectivement, MFC, po MSDN.... merci d'avoir corrigé djl

Magic Nono: l'informagicien!
Messages postés
115
Date d'inscription
samedi 27 décembre 2003
Statut
Membre
Dernière intervention
11 mai 2009

c'était tout simplement une question pour savoir si cété possible de déterminer une taille limite à un string mais je ne pense pas l'utiliser car je n'en vois pas l'utilité.

Magic_nono => Merci pour ces conseils sur les surchages d'opérateur je pense que ca pourrait me servir par la suite.

leprov=>Merci à toi aussi pour avoir pu répondre à la question.