Convertire stringa in minuscolo

di Anonimizzato8544 il
4 risposte
Salve raga sto scrivendo un programma per convertire una stringa in minuscolo ma non funziona il compilatore piange sulla riga di codice del while ora vi posto il sorgente:

#include <stdio.h>
#include <string.h>


char diventa_minuscolo(char);// prende un carattere se è già minuscolo return altrimenti lo converte
int main(int argc, const char * argv[])
{
    char *stringa;
    int i;
    
    
    stringa="piPPO";
    i=0;
    while(stringa[i]!='\0')
    {
        stringa[i]=diventa_minuscolo(stringa[i]);// appena la funzione fa il return si blocca su questo while
        i++;
    }
    
    printf("%s",stringa);
    return 0;
}






char diventa_minuscolo(char stringa)
{

    if((stringa>='a')&&(stringa<='z'))// il carattere è già minuscolo
        return stringa;
    //else
    
  stringa=stringa+'  '; // carattere '  ' in ascii è uguale a 32 
    return stringa;
}

4 Risposte

  • Elimina la linea

    stringa="piPPO";

    e usa all'inizio

    char stringa[] = "piPPO";
  • Grazie ora funziona... mi spiegheresti come mai ho dovuto fare questo cambiamento??
  • Perché come l'hai scritto tu la stringa diventa una costante inserita nell'area dell'eseguibile in sola lettura e quindi non è modificabile dal programma (ovvero se ci tenti hai un errore).

    Scritta nell'altro modo, invece, viene memorizzata nello stack e quindi tutti i suoi caratteri potranno essere modificati.
  • Grande...grazie per la spiegazione!
Devi accedere o registrarti per scrivere nel forum
4 risposte