[C] - Question sur strstr()

- Question sur strstr() [C] - C++ - Programmation

Marsh Posté le 16-10-2002 à 20:20:03    

En fait, j'utilise cette fonction mais je viens de me rendre compte qu'elle tiens compte des majuscules et minuscules.
 
Donc si je fais strstr("salut les copains", "Copains" );
 
elle me retourne NULL alors que copains s'y trouve :/
 
y a t'il un moyen facile de remedier a cela?  
Une autre fonction que strstr() p e?  
 
Merci

Reply

Marsh Posté le 16-10-2002 à 20:20:03   

Reply

Marsh Posté le 17-10-2002 à 10:23:15    

Voici une des implementations de strstr:

Code :
  1. char*  strstr (const char * str1,const char * str2)
  2. {
  3.         char *cp = (char *) str1;
  4.         char *s1, *s2;
  5.         if ( !*str2 )
  6.             return((char *)str1);
  7.         while (*cp)
  8.         {
  9.                 s1 = cp;
  10.                 s2 = (char *) str2;
  11.                 while ( *s1 && *s2 && !(*s1-*s2) )
  12.                         s1++, s2++;
  13.                 if (!*s2)
  14.                         return(cp);
  15.                 cp++;
  16.         }
  17.         return(NULL);
  18. }


 
Tu peux la modifier pour qu'elle soit pas case sensitive.
 
Sinon, pourquoi ne pas modifier la chaine en mettant tous les caractères en majuscule (ou minuscule) à la fois dans la chaine ou tu recherches, et à la fois dans la chaine recherchée?
 
Si t'es sous Windows, il y a la fonction _strupr pour cela, ou alors une fonction dans CString des MFCs.


Message édité par YungMakko le 17-10-2002 à 10:25:51

---------------
In tartiflette, we trust!
Reply

Marsh Posté le 21-10-2002 à 15:51:26    

schtroumpheur a écrit a écrit :

 
 
y a t'il un moyen facile de remedier a cela?  
Une autre fonction que strstr() p e?  
 
oui tu la combine avec les fonctions upper() et lower() qui te mette toute une chaine en MAJ ou en MIN il me semble que c dans stdlib mais pas sur
 
Merci
 



Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed