Le langage SMS est exclu sur les forums ProgBoards, tout message ne respectant pas la charte sera déplacé, modifié, ou supprimé par nos modérateurs.

Forum Langages » C & Cie. » [C++]Manipulation de chaine comme en QBasic :p

kod128
ProgBoarder
Citer Windows NT Firefox - Posté le 16/08/2006 à 13:42
Comme <string.h> ne me convient qu'a moitié (et surtout parce qu'il y a pas grand chose qui me conviens dedans), j'ai décidé d'écrire quelques fonctions simples (seulement 3) mais que j'utilise énormément.

-> char *str_left(char *chaine, int jusquOu);
Permet de récupérer un certain nombre de caractères les plus a gauche de la chaîne (comme LEFT$ en QBAsic)

-> char *str_right(char *chaine, int jusquOu);
Idem mais pour la droite (comme RIGHT$ en Qbasic)

->char *str_mid(char *chaine, int aPartirDOu, int jusquOu);
Bon, j'explique ou ça ira? (ressemble a MID$ du Qbasic)

Par contre, attention, il faut bien faire gaffe de bien libérer la mémoire allouée par ces fonction. Avec un ptit delete (clein d'oeil)
Voila, j'attends vos remarques constructives avec impatience. En espérant que ça pourra être utile à un débutant . La source est disponible sur le wall :

Wall (76) : Afficher le code source - Ouvrir dans une nouvelle fenêtre
. Il y a un .h avec les prototypes et le .cpp

Biensûr c'est libre de droit. C'est Copyleft Mr kod128 (héhé

Edité par kod128 ( 16/08/2006 13:45:55 )
Freem
Modérateur
RemonterCiter Windows NT Firefox - Posté le 17/08/2006 à 15:41
Pour les lignes 25-29 tu aurait pu utiliser une for.
Pour str_mid, je penses que les variables du prototype sont mal nommées (enfin, la 3eme en fait (clein d'oeil)) car i_len2 est en fait la taille de la sous chaine a copier (au début je croyais que c'était la position de la premiere chaine ou la copie s'arrêtait)
Sinon, tu aurai pu (au lieu d'appeler tes 2 fonctions précédantes) faire une boucle for (j'aime ces boucles, en C elles sont beaucoups plus puissantes qu'en QB (héhé bien que l'on pourrait aussi faire ca en qb)
comme ca:


for(pos=i_len;pos<i_len2+i_len;pos++)
r_str[pos]=i_str[pos];



Sinon, j'e n'aurai créé qu'une fonction (la derniere) et je l'aurai appelé avec les autres (en mettant un paramètre a 0 ou a strlen())

[edit]
J'oubliai, en C++, tu peut utiliser les classes et surcharger les opérateurs (les =, ==, +=, etc...) si tu veut approfondir ton projet, tu pourrait créer une classe, ce qui faciliterait l'accès au fonctions et éviterait de forcer le programmeur a deleter a la fin du prog (clein d'oeil) et bien entendu si tu as besoin d'aide on est la) (cool)

Edité par Freem ( 17/08/2006 15:47:08 )
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. - Benjamin Franklin
kod128
ProgBoarder
RemonterCiter Windows NT Firefox - Posté le 17/08/2006 à 21:03
Pour le prototypage, je pensais que les déclarations dans le .h aurais été suffisament claires (clein d'oeil).

C'est sympa pour l'aide. A vrai dire je connais pas encore très bien toutes les ficelles du c++. C'est vrai que ca pourrais etre pratique un système de classes.

Merci pour l'astuce du "for". Je l'utilise très peux au profit du "do" mais c'est vrai que ca pourrais être plus clair. Je compte etendre ma petite librairie a d'autres fonction pratiques. Et corriger quelques points. (sourire)

Sinon je vais faire des recherches sur la surcharge et sur les classes. Histoire de rendre ces fonctions plus "érgonomiques" et plus claires. (sourire)
Francesco
Modérateur
RemonterCiter Linux Firefox - Posté le 17/08/2006 à 22:13
si tu veux appronfondir les classes, la surchage, etc... que te conseillé à par http://casteyde.christian.free.fr/cpp/cours/index.html ? (héhé)
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
kod128
ProgBoarder
RemonterCiter Windows NT Firefox - Posté le 18/08/2006 à 10:28
Merci pour la doc. Je m'y plongue a l'instant même (langue)
Alp
Code-Libre.org
RemonterCiter Windows XP Firefox - Posté le 30/09/2006 à 14:56
En attendant, t'as une classe std::string dans <string> (pas string.h, c'est très différent), qui gère la concaténation, la recherche, le parcellement, etc ...
Tu as vraiment un gros stock de fonctions.
Vas voir cppreference.com .

Poster une réponse

STOP aux fautes volontaires !
Message
Formatage
Note: pour partager du code source, merci d'utiliser le wall !
Smileys (sourire) (yekyek) (clein d'oeil) (désapprouve) (triste) (cool) (langue) (confus) (gêné) (neutre) (eek) (surpris) (diable) (flèche) (exclamation) (question) (diable) (idée) (méchant)
Pseudonyme
Recopiez le code
v6 © Computaid SPRL 2005-2008 - Tous droits réservés - Hébergé par eTigris - Page générée en 0,061 s - Crédits - Stats
1 connecté