Jump to content

Timp rămas până la zilele B-Zone

V-am pregătit o mulțime de evenimente. Click aici

La mulți ani B-ZONE!

V-am pregătit o mulțime de evenimente. Click aici

[C++] Functia "stristr", declarare + folosire


zL Dark ReturN
 Share

Recommended Posts

Descrierea functiei:

  • In C/C++ exista functia "strstr" care verifica intr-un sir de caractere, daca exista un alt sir cautat:
  • Exemplu:
char *p = strstr("Tutorial creat de Vesca.", "creat"); 
cout<<p;

// Va afisa: "creat de Vesca."

  • Functia "strstr" este Case Sensitive, adica, daca cautam pe acelasi sir de caractere cuvantul: "crEat", nu vom gasi niciun rezultat, asadar, vom folosi "stristr".

 

Declararea functiei:

typedef unsigned int uint;
#if defined(__cplusplus) && __cplusplus
extern "C" {
#endif
char *stristr(const char *String, const char *Pattern) {
    char *pptr, *sptr, *start;
    uint slen, plen;
    for (start = (char *)String,
    pptr = (char *)Pattern,
    slen = strlen(String),
    plen = strlen(Pattern);
    slen >= plen;
    start++, slen--) {
        while (toupper(*start) != toupper(*Pattern)) {
            start++;
            slen--;
            if (slen < plen)
            return(NULL);
        }
        sptr = start;
        pptr = (char *)Pattern;
        while (toupper(*sptr) == toupper(*pptr)) {
            sptr++;
            pptr++;
            if ('\0' == *pptr)
            return (start);
        }
    }
    return(NULL);
}
#if defined(__cplusplus) && __cplusplus
}
#endif

Folosirea functiei:

char *p = stristr("Tutorial realizat de Vesca.", "reAliZat");
cout<<p;

// Va afisa: "realizat de Vesca."

Deosebire intre "strstr" si "stristr":

char *p, *q, a[]="Tutorial realizat de Vesca.";
p = strstr(a, "REalizaT");
q = stristr(a, "REalizaT");

if (p != NULL) cout<<p;
else cout<<"Functia 'strstr' este o functie case sensitive.\n";
if (q != NULL) cout<<q;
else cout<<"Functia 'stristr' este o functie case sensitive.\n";

// Va afisa: Functia 'strstr' este o functie case sensitive.
//           realizat de Vesca.
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.