Allocazione dinamica di una stringa

di
Anonimizzato28275
il
2 risposte

Allocazione dinamica di una stringa

Ciao, devo fare un metodo che data una stringa mi restituisce un nuovo puntatore ad una stringa con tutti i caratteri maiuscoli.
Ho scritto questo, ma mi da una marea di errori e non capisco dove sbaglio.

#include <stdio.h>
#include <mm_malloc.h>

char*  toUpperCase( *char s );
char*  toUpperCase( *char s ){
    //alloco la memoria per la nuova stringa
    char* p= malloc( strlen(s) +1 );
    //controllo se l'allocazione è andata a buon fine
    if ( p!= NULL ){
        //assegno a p i caratteri di s
        strcpy( p , s );
        int i;
        for(i=0;i< strlen(p); i++){
            // ogni carattere di p lo faccio diventare maiuscolo
            toupper(p[i]);
        }

    }
    return p;
}

int main(){
    printf("%s\n", toUpperCase("pippo") );
    return 0;
}
error: use of undeclared identifier 's' (perchè? grazie in anticipo)

2 Risposte

  • Re: Allocazione dinamica di una stringa

    Questo

    *char s

    deve essere

    char *s

    Poi dovrebbe essere

    #include <malloc.h>

    e mancano

    #include <string.h>
    #include <ctype.h>

    e quando rendi le lettere maiuscole manca la destinazione

    p[ i ]=toupper(p[ i ]);
  • Re: Allocazione dinamica di una stringa

    Funziona adesso grazie!
Devi accedere o registrarti per scrivere nel forum
2 risposte