strstr ? [C] - Programmation
Marsh Posté le 15-07-2002 à 12:58:55
Code :
|
strstr, semble effectivement être ce dont tu as besoin, pour le problème de compréhension, le mieux c'est de se taper un petit bout de code et de faire varier les paramètres
Marsh Posté le 15-07-2002 à 13:05:13
J'ai un "incompatible types in assignement" au niveau de :
resultat = strstr (string, " " );
CHaiCA
Marsh Posté le 15-07-2002 à 13:06:53
chaica a écrit a écrit : J'ai un "incompatible types in assignement" au niveau de : resultat = strstr (string, " " ); CHaiCA |
normal, j'ai pas alloué résultat. pour pas t'embêter avec ça tu fait char resultat[200];
edit: avant que tu demandes: tu fais pareil avec string
Marsh Posté le 15-07-2002 à 13:13:12
heu faut pas allouer resultat, vu que strstr te retourne un pointeur de char, et non pas vraiment une chaîne (vu qu'en C on ne sait pas le faire)
Marsh Posté le 15-07-2002 à 13:14:08
antp a écrit a écrit : heu faut pas allouer resultat, vu que strstr te retourne un pointeur de char, et non pas vraiment une chaîne (vu qu'en C on ne sait pas le faire) |
dsl, en digestion, puis le problème ça semblait être strstr!
Marsh Posté le 15-07-2002 à 13:15:08
Je vais me faire taper sur les doigts mais je pige pas ton code.
-Déclaration des deux strings OK
resultat = strstr (string, " " ); // la fonction strstr te retourne un pointeur qui indique l'emplacement de l'occurence de la chaîne recherchée dans la chaine principale.
printf ("\nLa recherche du 1er blanc donne : [%s]\n ", resultat);[/cpp] // là tu veux faire apparaître un pointeur? je pige pas. Moi ce que je voudrais c'est une position dans la chaine genre string[3] qui me permette de faire apparaître le premier caractère de la chaîne recherchée par la suite.
CHaiCA
Marsh Posté le 15-07-2002 à 13:17:55
chaica a écrit a écrit : Je vais me faire taper sur les doigts mais je pige pas ton code. -Déclaration des deux strings OK resultat = strstr (string, " " ); // la fonction strstr te retourne un pointeur qui indique l'emplacement de l'occurence de la chaîne recherchée dans la chaine principale. printf ("\nLa recherche du 1er blanc donne : [%s]\n ", resultat); // là tu veux faire apparaître un pointeur? je pige pas. Moi ce que je voudrais c'est une position dans la chaine genre string[3] qui me permette de faire apparaître le premier caractère de la chaîne recherchée par la suite. CHaiCA |
ben le premier caractère c'est resultat[0]
t'as lancé ce code? qu'obtiens tu à l'affichage?
Marsh Posté le 15-07-2002 à 13:48:33
Voila mon code:
Code :
|
et j'ai comme resultat à l'execution :
Le resultat du 1er n connu donne : [`]
ChaiCA
Marsh Posté le 15-07-2002 à 13:52:23
chaica a écrit a écrit : Voila mon code:
|
heu... resultat, a priori c char* donc pour l'afficher %s, si tu veux afficher un caractère de resultat, il faut indiquer un indic (resultat[0] par ex)
Marsh Posté le 15-07-2002 à 13:54:23
chaica a écrit a écrit : Voila mon code:
|
printf("\nLe resultat du 1er n connu donne : [%d]", resultat-string);
Là tu auras la position !!!
Et avant de faire chaine[resultat-string], contrôle la valeur de resultat. (NULL ???).
Marsh Posté le 15-07-2002 à 14:02:04
Merci DarkOli , exactement ce que je voulais!
Bon je vais étudier ca un peu et continuer.
Merci à tout ceux qui sont intervenus!
CHaiCA
Marsh Posté le 15-07-2002 à 12:49:25
J'ai deux chaînes. ch1 contient ch2. Je veux trouver la position dans ch1 du premier caractère de ch2.
Comment puis je faire? Je ne comprends pas bien la fonctionnement de strstr.
Merci d'avance!
CHaiCA