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

  FORUM HardWare.fr
  Programmation
  C++

  Comment renvoyer une chaine dans une fonction ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment renvoyer une chaine dans une fonction ?

n°148488
tistou
Posté le 31-05-2002 à 11:35:50  profilanswer
 

Bon, tout est dans le titre ou presque : il me faut une fonction qui ne prend rien en paramètre et renvoie une chaine, genre une fonction de saisie. Le mieux que je puisse faire pour l'instant c'est renvoyer un caractère, ce qui est bien mais pas top.
 
Donc si une bonne âme pouvait simplement m'indiquer le prototypage, l'appel et la façon de renvoyer (pointeur sur une chaine, adresse ?) ca relancerait le schmilblick...
 
Merci d'avance...

mood
Publicité
Posté le 31-05-2002 à 11:35:50  profilanswer
 

n°148534
mareek
Et de 3 \o/
Posté le 31-05-2002 à 12:26:56  profilanswer
 

précise ton langage de prog et explique toi un peu mieux, c'est franchement pas clair.
 
tu veux une fonction qui te renvoit une chaine aléatoire, une chaine saisie par l'utilisateur, autre chose ???


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°148539
torpe23
Posté le 31-05-2002 à 12:32:43  profilanswer
 

si c'est en C, alors:
 
prototype : char* fnc(void)
 
puis dans le main :  char tableau[30];
                     tableau = fnc();
 
et enfin, dans la fcn : char chaine[30];
                        fgets(stdin,30,chaine);
                        return chaine;
 
voilà, je crois que ça doit être à peu près bon !

n°148556
darkoli
Le Petit Dinosaure Bleu
Posté le 31-05-2002 à 13:23:50  profilanswer
 

torpe23 a écrit a écrit :

si c'est en C, alors:
 
prototype : char* fnc(void)
 
puis dans le main :  char tableau[30];
                     tableau = fnc();
 
et enfin, dans la fcn : char chaine[30];
                        fgets(stdin,30,chaine);
                        return chaine;
 
voilà, je crois que ça doit être à peu près bon !  




 
AHHHHHHHHHHHHHHHHHHHHHHHH quelle horreur !!!
 

Code :
  1. int main()
  2. {
  3. char* chaine=NULL;
  4. /* Traitement */
  5. chaine=fct();
  6. if (chaine == NULL) return -1;
  7. ...
  8. /* Fin */
  9. free(chaine);
  10. return 1; /* ou 0, je ne sais plus */
  11. }
  12. char* fct(void)
  13. {
  14. char* chaine_tmp=NULL;
  15. /* Initialisation */
  16. chaine_tmp=(char*)malloc(sizeof(char) * longueur_que_tu_veux);
  17. if (chaine_tmp == NULL) return NULL;
  18. /* Traitement */
  19. ...
  20. /* Fin */
  21. return chaine_tmp;
  22. }

 

[jfdsdjhfuetppo]--Message édité par DarkOli le 01-06-2002 à 12:01:41--[/jfdsdjhfuetppo]


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
n°148667
torpe23
Posté le 31-05-2002 à 15:43:06  profilanswer
 

ouais, ça va ! j'ai fait ça vite fait, hein ! mais l'idée était là quand même !

n°148670
darkoli
Le Petit Dinosaure Bleu
Posté le 31-05-2002 à 15:46:05  profilanswer
 

torpe23 a écrit a écrit :

ouais, ça va ! j'ai fait ça vite fait, hein ! mais l'idée était là quand même !  




 
Ben le problème c'est que tu crées un tableau pour ensuite l'écraser avec le résultat de la fonction, donc c'est pas génial !!!


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
n°148913
torpe23
Posté le 31-05-2002 à 23:40:28  profilanswer
 

c'est vrai mais sur le coup, j'y ai pas trop fait attention !... dsl !

n°148921
joce
Architecte / Développeur principal
"BugHunter"
Posté le 01-06-2002 à 00:09:21  profilanswer
 

yep c'est clair au moins y a pas de leak :p

n°148971
darkoli
Le Petit Dinosaure Bleu
Posté le 01-06-2002 à 12:04:38  profilanswer
 

DarkOli a écrit a écrit :

 

Code :
  1. ...
  2. chaine_tmp=(char*)malloc(sizeof(char) * longueur_que_tu_veux + 1);
  3. ...

 




 
Oups, j'avais oublié le '+1' pour le '\0' !!!
Exemple : 'toto' est chaîne de longueur 4 mais utilise 5 caractères en mémoire (un pour le caractère '\0' qui indique la fin de la chaîne !!!)


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
n°149024
benou
Posté le 01-06-2002 à 13:55:06  profilanswer
 

S'il vous plait : précédez le titre des post par le langage :  
ex: : [C] Comment renvoyer une chaine dans une fonction ?


---------------
ma vie, mon oeuvre - HomePlayer
mood
Publicité
Posté le 01-06-2002 à 13:55:06  profilanswer
 

n°149766
tistou
Posté le 03-06-2002 à 08:47:28  profilanswer
 

merci beaucoup, ca marche tres bien tout ca...  :jap:  
 
(Je n'ai pas mis la balise [C], car posté dans la sous catégorie C C++, dsl si du coup le post prete à confusion.)
 
Merci encore !

n°149769
benou
Posté le 03-06-2002 à 09:01:23  profilanswer
 

ouais je sais : beaucoup de gens font ca maintenant, mais le problème c'est que on ne voit pas le thème des posts ... donc c'est quand même mieux de le mettre à la main.


---------------
ma vie, mon oeuvre - HomePlayer

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

  Comment renvoyer une chaine dans une fonction ?

 

Sujets relatifs
[PHP] Compter le nombre de caractères dans une chaineVisual C++ comment ecrire une chaine dans un BSTR?
[PHP & JAVASCRIPT] Equivalent d'une fonctionComparaison chaine de texte php
[VBA] test d'une chaine de caractèrecompter le nombre de majuscules ds une chaine
Remplacer les retour chariots dans une chaîne de carractèresVBA : rendre appli indépendante ? recup code dans chaîne ? 3426?
Programme pour remplacer une chaine de caractere dans un fichierjavascript : fonction à n paramètres
Plus de sujets relatifs à : Comment renvoyer une chaine dans une fonction ?


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