Problème dans boucle « if » avec fonction strstr()
Wikiii_Dessantolines
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J’ai un problème avec mon programme que je n’arrive pas à régler:
J’ai un noeud xml avec un attribut id. Je lis un document txt et j’aimerais renvoyer ok pour toute les lignes où il y a l’id du node entre deux / et où il y a le mots DeviceEnabled.
#define TAILLE_MAX 1000;
xmlChar *content_id=xmlGetProp(cur_node, BAD_CAST « id »);
char chaîne[TAILLE_MAX]=« »;
while(fgets(chaîne,TAILLE_MAX,fichier)!=NULL)
{
if(strstr(chaîne, « /»+content_id+ « /» && strstr(chaîne, « DeviceEnabled »)
{
printf(« ok »);
}
}
Le problème se trouve dans la boucle if.
L’erreur affichée est: invalid operands of types ‘const char[23]’ and ‘ xmlChar *’ to binary operand+.
Merci par avance pour votre aide!
J’ai un problème avec mon programme que je n’arrive pas à régler:
J’ai un noeud xml avec un attribut id. Je lis un document txt et j’aimerais renvoyer ok pour toute les lignes où il y a l’id du node entre deux / et où il y a le mots DeviceEnabled.
#define TAILLE_MAX 1000;
xmlChar *content_id=xmlGetProp(cur_node, BAD_CAST « id »);
char chaîne[TAILLE_MAX]=« »;
while(fgets(chaîne,TAILLE_MAX,fichier)!=NULL)
{
if(strstr(chaîne, « /»+content_id+ « /» && strstr(chaîne, « DeviceEnabled »)
{
printf(« ok »);
}
}
Le problème se trouve dans la boucle if.
L’erreur affichée est: invalid operands of types ‘const char[23]’ and ‘ xmlChar *’ to binary operand+.
Merci par avance pour votre aide!
Configuration: iPhone / Safari 13.0.1
A voir également:
- Problème dans boucle « if » avec fonction strstr()
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer dans word - Guide
- Fonction somme excel - Guide
1 réponse
Salut,
Tu ne peux pas faire cela.
Vois : http://www.cplusplus.com/reference/cstring/strstr/
Tu dois lui passer des chaînes C et comme tu le vois, la fonction est très basique et tu ne peux pas y cumuler les conditions.
Si tu veux concaténer des
http://www.cplusplus.com/reference/string/string/c_str/
Là tu utilises une fonction xmlGetProp, issue d'une bibliothèque, qui te retourne un type
Dal
Tu ne peux pas faire cela.
strstr()est une fonction standard du C dont le prototype est :
const char * strstr ( const char * str1, const char * str2 );
Vois : http://www.cplusplus.com/reference/cstring/strstr/
Tu dois lui passer des chaînes C et comme tu le vois, la fonction est très basique et tu ne peux pas y cumuler les conditions.
Si tu veux concaténer des
string, tu peux le faire en C++, puis utiliser le résultat de la concaténation produit par l'objet
stringavec la méthode string::c_str
http://www.cplusplus.com/reference/string/string/c_str/
Là tu utilises une fonction xmlGetProp, issue d'une bibliothèque, qui te retourne un type
xmlChar *selon ton code. Ce type qui n'est ni
char *ni
string. Vois la documentation de ta bibliothèque pour savoir comment tu peux exploiter le résultat retourné sous la forme d'un type standard.
Dal