Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C (http://www.go4expert.com/forums/c/)
-   -   strncmpi (http://www.go4expert.com/forums/strncmpi-t19964/)

raagasri 2Nov2009 20:03

strncmpi
 
Code:

#include <stdio.h>
int main(int argc, char** argv)
{
        char acNamme[10];
        char acPrint[10];
        int iCmp;
        char acName[]= "what is your name";
        printf(acName);
        scanf("%s \n", &acNamme);
        printf("%s \n", acNamme);
        gets(acPrint);
        printf("%s",acPrint);
        iCmp = strncmpi(acNamme,acPrint,3);
        if(iCmp==0)
        {
                printf("Comparison success");
        }
        else
        printf("not success");
}

why i get an error "undefined reference to 'strncmpi' "

xpi0t0s 2Nov2009 22:05

Re: strncmpi
 
Oops, you forgot to read the posting guidelines. They're really not that difficult to miss and quite easy to read.

murugaperumal 26Feb2010 12:21

Re: strncmpi
 
Dear Friends,

There is no function like "strncmpi" in C . You should you the stcncmp function.


iCmp = strncmp(acNamme,acPrint,3);

vivekraj 26Feb2010 12:47

Re: strncmpi
 
There is no such function called strncmpi in C.

If you want to compare the strings with case sensitive.Then,you use strncmp function.


If you want to compare the strings ignoring case.Then,you use strncasecmp function which is similar to strncmp but ignores the case during comparison.

thillai_selvan 26Feb2010 12:47

Re: strncmpi
 
Are you trying to write your own strncmp function to perform case insensitive comparison?

askmewhy25 17Mar2010 17:56

Re: strncmpi
 
You can use this header file and save it as strncmpi.h

Code:

#include "autocfg.h"
#include "compat/strncmpi.h"
#include <ctype.h>

int strncmpi(const char *a1, const char *a2, unsigned size) {
        char c1, c2;
        /* Want both assignments to happen but a 0 in both to quit, so it's | not || */
        while((size > 0) && (c1=*a1) | (c2=*a2)) {
                if (!c1 || !c2 || /* Unneccesary? */
                        (islower(c1) ? toupper(c1) : c1) != (islower(c2) ? toupper(c2) : c2))
                        return (c1 - c2);
                a1++;
                a2++;
                size--;
        }
        return 0;
}



All times are GMT +5.5. The time now is 15:33.