Ciao, ho fatto diverse prove usando la funzione int tolower(int) della libreria <ctype.h>, ma non funziona palesemente!
Con il seguente programma, ciò che vedo è che, non appena la freccetta gialla del debugger (che indica l'istruzione corrente) mira alla riga numero 13, toccando il tasto "Next line", la freccetta salta direttamente alla riga 15, cioè la riga dove è presente la tolower viene completamente ignorata e l'istruzione "tolower(c);" non viene proprio eseguita! Tanto è vero che invece che stampare "Cc" questo programma produce in output "CC".
e in più nella finestra "Build message" appare il seguente warning:codice:#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> int main() { char stringa[5] = "CIAO"; int c; c=stringa[0]; printf("%c", c); //13 tolower(c); //14 printf("%c", c); // 15 return 0; }
"C:\Users\..\.....\main.c|14|warning: statement with no effect [-Wunused-value]| ".
Se dichiaro "char c" invece che int, non cambia assolutamente niente: la tolower è ignorata e ottengo lo stesso warning... per non parlare di questo:
codice:#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> int main() { char stringa[5] = "CIAO"; int i; for(i=0; i<strlen(stringa); i++) //11 tolower(stringa[i]); //12 //13 for(i=0; i<strlen(stringa); i++) printf("%c", stringa[i]); return 0; }
l'output è "CIAO" e il messaggio di warning è sempre lo stesso...
"C:\Users\..\.....\main.c|12|warning: statement with no effect [-Wunused-value]| ".
Non ho mai avuto problemi di questo genere usando questa funzione! Non ho idea di cosa potrebbe essere

Rispondi quotando
