DE C++ EN C - C - Programmation
Marsh Posté le 30-12-2011 à 21:33:55
j'ai essayé avec void extract_word ( char *s, (char *) &s1, (char *) &s2 ) mais négatif....
Marsh Posté le 30-12-2011 à 23:33:54
le '&' indique que la variable est une référence, c'est propre au C++.
Si t'as besoin de modifier s1 ou s2, fais passer par pointeur en C
Marsh Posté le 30-12-2011 à 23:46:11
Terminapor a écrit : le '&' indique que la variable est une référence, c'est propre au C++. |
Merci je comprends maintenant, vais essayer et voir ce que ca donne
Marsh Posté le 31-12-2011 à 19:51:15
theshockwave a écrit : qu'est-ce que tu appelles traduire ? C'est dans quel contexte ? |
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 ???
Marsh Posté le 31-12-2011 à 19:54:10
Aussi, je dois poster le projet ce soir à minuit au plus tard, je compte sur vous pour m'aider .
Marsh Posté le 01-01-2012 à 13:56:43
ce code est mauvais en C++, sa traduction directe en C serait aussi mauvaise. Regarde ta bibliothèque standard pour la manipulation de chaines, tu trouveras de bonnes méthodes pour le faire.
Lance-toi, fournis-nous un code que tu as écrit toi même, et ca servira de base pour qu'on t'aide.
Marsh Posté le 01-01-2012 à 18:12:06
baboye11 a écrit : |
Une référence permet de modifier directement un argument, j'm'explique avec un bout de code :
Code :
|
Normalement tu as les connaissances requise pour faire ça en C avec les pointeurs
Marsh Posté le 01-01-2012 à 19:26:16
Terminapor a écrit :
|
Merci, c'est très explicite ton explication, j'ai dèjà envoyé le projet mais ceci est une connaissance de plus, j'ai bien saisi les references maintenant, thanks for all !
Marsh Posté le 30-12-2011 à 21:12:32
Bonjour, aidez moi s'il vous plait :
Comment pourrai je traduire cette ligne de C++ en C : void extract_word ( string s, string &s1, string &s2 )
J'ai du mal avec les "&".Merci d'avance