Convertire stringa in minuscolo

di il
4 risposte

Convertire stringa in minuscolo

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

  • Re: Convertire stringa in minuscolo

    Elimina la linea

    stringa="piPPO";

    e usa all'inizio

    char stringa[] = "piPPO";
  • Re: Convertire stringa in minuscolo

    Grazie ora funziona... mi spiegheresti come mai ho dovuto fare questo cambiamento??
  • Re: Convertire stringa in minuscolo

    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.
  • Re: Convertire stringa in minuscolo

    Grande...grazie per la spiegazione!
Devi accedere o registrarti per scrivere nel forum
4 risposte