ciao a tutti
ho bisogno di convertire i caratteri maiuscoli di una strina, in caratteri minuscoli
navigando qua e la mi sono accorto dell'esistenza della funzione "strlwr", ma da quello che ho capito non è nello standard c, infatti , se usata, mi dava errore (il compilare norn riusciva a trovarla)
per cui ho deciso di costruine una io (se c'è un metodo per usare quella predefinita fatemelo sapere), consultando pagine web che, praticamente, la riportavano già fatta
codice:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
char * strlwr2 (char *a)
{
char *ret = a;
while (*a != '\0'){
if (isupper (*a)){
printf("lettera da convertire %c\n", *a); //stampa esattamente la lettera che voglio
*a = tolower ((unsigned char)*a); //qui la segmentation fault
}
++a;
}
return ret;
}
int main()
{
char * pippo;
pippo ="cIaO";
printf("stringa %s\n", pippo);
pippo=strlwr2(pippo);
printf("stringa %s\n", pippo);
}
ma al momento dell'esecuzione salta fuori una segmentation fault, precisamente
Segmentation fault (core dumped)
nella riga commentata sopra....
per compilare uso il classico gcc, su una ubuntu
come posso risolvere il mio problema?? grazie