strchr qui ne fonctionne pas!
Bonjour, j'ai une fonction qui doit memoriser des balises Html, c'est a dire des lettres contenues entre < et >
ou entre < et ' ' (l'espace c'est au cas où il y aurait des proprietés a la balise). Enfin bref voila ma fonction:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| char *Memoriser_Balise(char *ligne, int alpha)
{
char *balise=malloc(15);
char *finnom;
finnom =strchr(&ligne[alpha],' ');
if (!finnom)
finnom = strchr(&ligne[alpha],'>');
*finnom='\0';
strncpy(balise,ligne+alpha, 15);
*finnom='>';
return(balise);
} |
Or si j'ai par exemple <HTML><Body> la balise memorisée sera : HTML><Body
Pareil si j'ai <i>espaceBlabla , la balise memorisée sera : i>
Quelqu'un peut il m'expliquer pourquoi?
Surtout que si j'ai <i>retour chariot la balise memorisée sera : i
Ce qui est correct.
Re: strchr qui ne fonctionne pas!
Code:
1 2
|
finnom =strchr(&ligne[alpha],' '); |
Tu passes a strchr l'adresse d'un caractere alors que strchr demande une chaine de caractere (c'est quand meme mieux pour rechercher un caractere dans une chaine)
Code:
1 2
|
finnom = strchr(&ligne[alpha],'>'); |
Pareil
Code:
1 2
|
strncpy(balise,ligne+alpha, 15); |
Comprend pas pourquoi tu fais ca
Regarde peut etre du cote de strtok