begin process at 2012 05 29 21:54:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

probleme de return en C ????


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme de return en C ????

mardi 17 mai 2005 à 22:43:18 | probleme de return en C ????

nach73

Bonjour,
J'ai creer une fonction qui renvoie 2 chaine de caractere.
J'aimerai savoir comment peut-on les receptioners, si c'est possible.
Merci.

mardi 17 mai 2005 à 23:02:30 | Re : probleme de return en C ????

LaPatoshe

Donne en valeur de retour à ta fonction une vleur de type structure qui contiendra deux chaines de caratères.
Ex :
struct CHAINE
{
      char ChaineA[100];
      char ChaineB[100];
}ElementRenvoye;

CHAINE CreationChaine(void)
{
      //Code créant et renvoyant une valeur de type CHAINE
}

int main()
{
   ElementRenvoye = CreationChaine();
   return 0;
}


NB : Autre solution : Si tes chaines peuvent être déclarées au préalable, tu peux utiliser le passage par référence.

LaPatoshe
mardi 17 mai 2005 à 23:12:45 | Re : probleme de return en C ????

nach73

excuse je te ne suis pas
voila mon code:
on doit rentre une chaine du type >ch<>aine<
et je veux quel me renvoie >ch< et >aine<
c'est ce quel fait,sauf que je ne sais pas comment les recuperees.

char *ChaineRechValide (char *ch)
{
     char ch2[30];
     char* p =strrchr(ch,'>'); /*>ch<*/
     while(*p != '>') p--;
     strcpy(ch2,p);  /*>aine<*/
     *p = 0;
     return (ch,ch2);
}
    
main ()
{
     char chaine[30];
     char tmp,ch;
     printf("Entrez chaine : ");
     gets(chaine);
     ChaineRechValide (chaine);
     ??????
     getc(stdin);
     fflush(stdin);
     return;
}

mardi 17 mai 2005 à 23:36:57 | Re : probleme de return en C ????

LaPatoshe

Si je comprends bien, tu envoie dans ta fonction *ch, et tu veux retourner *ch et *ch2. Par définition, une fonction ne peut que renvoyer une seule valeur. Si tu veux en renvoyer plusieurs, il faut passer ces valeur par référence à ta fonction, et transformer ces mêmes valeurs à l'intérieur.

L'autre solution, c'est de créer une structure définie pour renfermer des chaines de caractère. Ainsi, tu renvoies une variable du type de ta structure, donc qui renferme tes deux chaines de caractère.
Vu ton programme, ta fonction reçoit en paramètre une chaine de caractère ch. Il faudra la modifier pour qu'elle reçoive ta structure.

#include<malloc.h>

struct CHAINE
{
   char *Chaine1;
   char *Chaine2;
} Element;


CHAINE ChaineRechValide (char *Element.Chaine1)
{
      CHAINE ElementB;
     char ch2[30];
     char* p =strrchr(ch,'>'); /*>ch<*/
     while(*p != '>') p--;
     strcpy(ch2,p);  /*>aine<*/
     *p = 0;
      ElementB.Chaine1 = (char*) malloc(100);
      ElementB.Chaine2 = (char*) malloc(100);
      strcpy(ElementB.Chaine1, Element.Chaine1);
      strcpy (ElementB.Chaine2, ch2);
     return ElementB;
}


int main ()
{
     char chaine[30];
     char tmp, ch;
     printf("Entrez chaine : ");
     gets(chaine);
     ChaineRechValide (chaine);
     ??????
     getc(stdin);
     fflush(stdin);
     return 0;
}


LaPatoshe

mercredi 18 mai 2005 à 01:05:22 | Re : probleme de return en C ????

nach73

Réponse acceptée !

sympa, mais sa fonctionne pas, mais l'idee de la structure est bonne et ma vachement aide .
Merci bcp.
Voila se que j'ai fait et elle fonctionne :

#include<malloc.h>
#include<stdio.h>

 struct
{
   char Chaine1[30];
   char Chaine2[30];
} CHAINE;


void ChaineRechValide (char *Ch)
{
   
     char ch2[30];
     char* p =strrchr(Ch,'>'); /*>ch<*/
     while(*p != '>') p--;
     strcpy(CHAINE.Chaine1, p);  /*>aine<*/
     *p = 0;
     strcpy (CHAINE.Chaine2, Ch);
     return ;
}

int main ()
{
     char chaine[30];
     char tmp, ch;
     printf("Entrez chaine : ");
     gets(chaine);
     ChaineRechValide (chaine);
     printf("\n%s ",CHAINE.Chaine1);
     printf("\n%s ",CHAINE.Chaine2);
     getc(stdin);
     fflush(stdin);
     return 0;
}

mercredi 18 mai 2005 à 18:19:53 | Re : probleme de return en C ????

Matt67

Bonsoir,

Attention avec le gets, préférer fgets

Matt...
mercredi 18 mai 2005 à 18:25:25 | Re : probleme de return en C ????

nach73

Desole mais "fgets" sert a aller chercher un caractere dans un fichier, tandis "gets" est une saisie console qui accepte les espace, contrairement a "scanf"

mercredi 18 mai 2005 à 18:42:06 | Re : probleme de return en C ????

Matt67

re-bonsoir,

fgets(buf, size, stdin);

Matt...
mercredi 18 mai 2005 à 18:46:29 | Re : probleme de return en C ????

steve_clamage

nachh73, gets lis stdout (qui généralement est un fichier associé auclavier) et non la console. De plus gets est dépréciée car buggée.
Il faut remplacer gets(chaine) par fgets( chaine, sizeof chaine, stdin ) mais bon, dans ton code tout est à revoir.
mercredi 18 mai 2005 à 18:47:39 | Re : probleme de return en C ????

nach73

en C :

char *fgets(char *s, FILE *stream)


1 2

Cette discussion est classée dans : probleme, return


Répondre à ce message

Sujets en rapport avec ce message

GetFileAttributes [ par blueburry ] Bonjour, g un probleme avec la fonction GetFileAttributes(), meme si le fichier existe dans WINDOWS, elle me retourne  0xFFFFFFFF. Vous pouvez me dire Problème de linker dans programme de base. [ par vith17 ] Bonjour,J'ai tapé le code suivant sous Dev-C++. Lorsque je lance la compilation, il me revoie l'erreur suivante :    [Linker error] undefined referenc insertion d'un joystick sous directx [ par kennit69 ] bonjourje souhaite integrer un joystick dans mon programme directxj'ai suivi les etapes explique sur le site msdn et lors de l'appele a la fonction H Probleme Debbuger [ par seb2086 ] Bonjour,Ca fait longtemps que j'ai ce probléme et j'aimerai bien le résoudre.Voila j'ai installer visual studio 2003 lorsque j'ouvre un projet et que Urgent : Probleme avec split d'un string [ par QuakeCoder ] salut. j'ai un char * qui contient "C:\\Documents and Settings\\quick\\Bureau\\Nouveau dossier\\test me.exe" comment faire pour extraire juste ca => " probleme avec borlandc 4.5 [ par sergedes ] bonjour,J'ai un probleme avec un borland 4.5 c++, il ne veux pas reconnaitre l'instruction CreateFile, il me reponds que cette instruction est obsolet Probleme de compilateur. [ par damish ] Bonsoir a tous.j ai un probleme pour ce qui est des compilateurs. Je débute dans le c & c++ dans des application dos et j ai récuperer quelques source probleme d'autorun [ par jinzo59 ] voila je voudrez savoir si quelqu'un pourai me faire vite fait un ptit logiciel exe qui consite a avoir le choix entre 2 fichier ".exe" vous voyez gen Pb WriteFile [ par Joky ] Bonsoir Bonsoir ma tite famille :) lol Donc j'ai un Soucy :) et oui et oui ;) En faite je ne suis pas sur que ça vienne de WriteFile, mais en tout cas Probleme de Compilation ? [ par nem02004 ] Salut a tous, je programme sous dev-cpp, une fois mes programmes compilé c'est nikel, je nai aps de problemes mis à part que si jouvre mon executable


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,279 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales