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
|