Referência indefinida para `strlwr ‘

Meu código é como um compressor de texto, lendo texto normal e se transforma em números, cada palavra tem um número. Ele compila no DevC ++, mas não termina, no entanto, ele não é compilado no Ubuntu 13.10. Eu estou recebendo um erro como no título no Ubuntu “referência indefinida para` strlwr ‘”, meu código é um pouco longo, então eu não sou capaz de publicá-lo aqui, mas um do erro é daqui:

//operatinal funcitons here int main() { int i = 0, select; char filename[50], textword[40], find[20], insert[20], delete[20]; FILE *fp, *fp2, *fp3; printf("Enter the file name: "); fflush(stdout); scanf("%s", filename); fp = fopen(filename, "r"); fp2 = fopen("yazi.txt", "w+"); while (fp == NULL) { printf("Wrong file name, please enter file name again: "); fflush(stdout); scanf("%s", filename); fp = fopen(filename, "r"); } while (!feof(fp)) { while(fscanf(fp, "%s", textword) == 1) { strlwr(textword); while (!ispunct(textword[i])) i++; if (ispunct(textword[i])) { i = 0; while (textword[i] != '\0') i++; i--; while (ispunct(textword[i])) i--; i++; i=0; while (isalpha(textword[i])) i++; textword[i] = '\0'; } addNode(textword); } } .... //main continues 

strlwr() não é a function C padrão. Provavelmente é fornecido por uma implementação enquanto o outro compilador que você usa não.

Você pode implementá-lo facilmente:

 #include  #include char *strlwr(char *str) { unsigned char *p = (unsigned char *)str; while (*p) { *p = tolower((unsigned char)*p); p++; } return str; }