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' "
Oops, you forgot to read the posting guidelines. They're really not that difficult to miss and quite easy to read.
Dear Friends, There is no function like "strncmpi" in C . You should you the stcncmp function. iCmp = strncmp(acNamme,acPrint,3);
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.
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; }