debutant : fonction retournant une chaine de charactere

debutant : fonction retournant une chaine de charactere - C++ - Programmation

Marsh Posté le 31-03-2003 à 09:21:38    

bonjour pourais ton me donner un exemple d une fonction retournant une chaine de charactere :)  
merci d avance  
 
 
voila mon exemple : (marche pas bien sure ;) )

Code :
  1. const char tabmot[11][11]={"amen","religion","travail","option","ignorer","prendre","dispercer","fumer","racler","priere","lait"};
  2. char*  myrand(tabmot)
  3. {
  4. srand ( time(NULL) );
  5. return tabmot[rand()%11];
  6. }


Message édité par GUG le 31-03-2003 à 09:22:08
Reply

Marsh Posté le 31-03-2003 à 09:21:38   

Reply

Marsh Posté le 31-03-2003 à 09:28:23    

ou alros dite moi pkoi ca ne peux pas marcher ;)  
aller un peut d aide parmi vous tous ;)

Reply

Marsh Posté le 31-03-2003 à 09:28:48    

c'est sympa de dire ce qui ne marche pas ! a l'avenir pense au moins a balancer les messages de compilation, c le minimum.
Enfin pour le coup, si le code poste correspond effectivement a celui que tu veux compiler c un peu normal que cela ne marche pas
 
 
 

Code :
  1. const char *tabmot[11]={"amen","religion","travail","option","ignorer","prendre","dispercer","fumer","racler","priere","lait"}; 
  2.  
  3.   const char*  myrand(const char ** tabmot) 
  4.   { 
  5.     //srand ( time(NULL) );  mauvais, ca fo le faire une seule fois en debut de programme, pas a chaque appel de myrand
  6.     return tabmot[rand()%11];
  7. }


   

Reply

Marsh Posté le 31-03-2003 à 09:32:20    

const char tabmot[11][11]
const char *tabmot[11] est mieux
 
et la signature de ta fonction doit être  
const char* myrand(const char **tabmot)
 
edit: grilled [:grilled]


Message édité par Harkonnen le 31-03-2003 à 09:33:05
Reply

Marsh Posté le 31-03-2003 à 09:35:51    

Harkonnen a écrit :

const char tabmot[11][11]
const char *tabmot[11] est mieux
 
et la signature de ta fonction doit être  
const char* myrand(const char **tabmot)
 
edit: grilled [:grilled]


 
et bien :D parce que je suis tellement en forme que j'ai :
 
->tapé mon message
->edité ledit message (oublie le ** lors du proto)
->cru que j'avais double-poster
->effacer mon message
->constater le tableau
->retapé mon message
 
mais quelle forme, quelle energie, nous sommes les princes du lundi matin, ouais !
 
 
 
 

Reply

Marsh Posté le 31-03-2003 à 09:45:11    

ah merci :) j essaye de suite :)

Reply

Marsh Posté le 31-03-2003 à 09:49:16    

ca marche merci :)
(je n ai pas mis l erreur de compilo car je pensais que ca venais du code ;) )  
 
qq un pourrait il  m expliquer pkoi les 2 ** ?
(mon prof est incapable de le faire)

Reply

Marsh Posté le 31-03-2003 à 09:51:37    

GUG a écrit :

ca marche merci :)
(je n ai pas mis l erreur de compilo car je pensais que ca venais du code ;) )  


 
(?)
 

GUG a écrit :


qq un pourrait il  m expliquer pkoi les 2 ** ?
(mon prof est incapable de le faire)


 
pour faire simple, un tableau rajoute une etoile (un tableau d'int * devient en param un int **, idem pour char etc....)
 
(ca m'etonnerait quand meme que ton prof ne puisse pas t'expliquer ca)


Message édité par chrisbk le 31-03-2003 à 09:51:52
Reply

Marsh Posté le 31-03-2003 à 09:54:30    

bah non il peut pas me l expliquer :(  je le sais bien je lui est demander :(  
je sens que je v prendre un bouquin de c et l aprendre ;)  
 
euh parceque j ai rien compris a ton explication :D

Reply

Marsh Posté le 31-03-2003 à 10:20:39    

voici un pointeur sur un entier : int *ptr_entier;
 
voici un tableau de pointeurs sur entier : int **tab;
ton tableau est une adresse donc il te faut deja une * et comme c'est un tableau de POINTEURS il te faut une seconde *

Reply

Marsh Posté le 31-03-2003 à 10:20:39   

Reply

Marsh Posté le 31-03-2003 à 10:24:28    

chrisbk a écrit :


 
et bien :D parce que je suis tellement en forme que j'ai :
 
->tapé mon message
->edité ledit message (oublie le ** lors du proto)
->cru que j'avais double-poster
->effacer mon message
->constater le tableau
->retapé mon message
 
mais quelle forme, quelle energie, nous sommes les princes du lundi matin, ouais !


ben moi j'avais commencé à répondre, mais le tél a sonné à ce moment la, et j'avais la réponse encore ouverte [:sinclaire]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 31-03-2003 à 10:25:50    

GUG a écrit :


(mon prof est incapable de le faire)


:ouch: c'est une blague ??


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 31-03-2003 à 10:36:09    

GUG a écrit :

euh parceque j ai rien compris a ton explication :D
 


une chaine de caractères est déjà considérée comme un tableau de caractères, ou un pointeur vers une zone de RAM qui contient des caractères.  
à partir du moment ou tu déclares un tableau de chaines, tu déclares un tableau de pointeurs vers des zones de RAM contenant des caractères. le tableau étant lui même une zone de RAM, tu peux y accéder de manière indicée (par les []), ou par un pointeur (pointant sur le début du tableau)
un tableau de chaines de caractères est donc un pointeur sur un pointeur de caractères, d'ou le **


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 31-03-2003 à 22:43:51    

ahh la merci j ai compris :))  
ps : je suis en bts les profs sont completement nul ... :(((( enfin dans celui oui je suis ... je suis en premiere annee et au bout d un an on a pas vu les pointeurs ...
 

Reply

Marsh Posté le 31-03-2003 à 22:47:28    

GUG a écrit :

au bout d un an on a pas vu les pointeurs ...
 
 


tu te prépares des jours sombres, ami...


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed