Terminapor I'll see you rise. | baboye11 a écrit :
 
 
     Oui en fait c'est cette fonction que je veux recoder en C,elle recoit en parametre un char et 2 passages par reference , elle doit extraire le premier mot d'une chaine :
     void s_word_extract_first ( string s, string &s1, string &s2 )
   {
   int i;
   int mode;
   int s_len;
     s_len = s.length ( );
   s1 = "";
   s2 = "";
   mode = 1;
     for ( i = 0; i < s_len; i++ )
   {
     if ( mode == 1 )
     {
       if ( s[i] != ' ' )
       {
          mode = 2;
       }
     }
     else if ( mode == 2 )
     {
       if ( s[i] == ' ' )
       {
         mode = 3;
       }
     }
     else if ( mode == 3 )
     {
       if ( s[i] != ' ' )
       {
         mode = 4;
       }
     }
     if ( mode == 2 )
     {
       s1 = s1 + s[i];
     }
     else if ( mode == 4 )
     {
       s2 = s2 + s[i];
     }
   }
     return;
 }
     Pour apeler la fonction je fais ceci :     s_word_extract_first ( line, word, rest );
   Ca marche bien en C++,mais comment en C svp ???
   |  
 
     Une référence permet de modifier directement un argument, j'm'explique avec un bout de code :    
  Code :
 - void fonction_avec_reference(int&a)
 - {
 - a=180;
 - }
 - void fonction_sans_reference(int a)
 - {
 - a=180;
 - };
 - int main(int,char**)
 - {
 - int var=0;
 - fonction_sans_reference(var); // Ici, on appelle la fonction sans utiliser de référence, donc var ne sera pas modifié car le passage se fait par copie dans ce cas.
 - fonction_avec_reference(var); // Maintenant, var aura une valeur de 180, étant donné que le fait d'utiliser une référence nous fait travailler directement sur la variable utilisée, et pas sur une copie
 - return 0;
 - }
 
  |  
 
   Normalement tu as les connaissances requise pour faire ça en C avec les pointeurs      ---------------
			 Perhaps you don't deserve to breathe
    |