Funzione C --> URGENTE domani ho l'esame!!!

di il
3 risposte

Funzione C --> URGENTE domani ho l'esame!!!

Esiste una funzione in C che converte un intero in un char?

3 Risposte

  • Re: Funzione C --> URGENTE domani ho l'esame!!!

    Ciao,

    Cerca sempre prima di fare domande... l'esistenza di tale funzione è una di quelle più comuni.

    Dai un'occhiata alla itoa() per convertire l'intero in una stringa (se l'intero ha più di una cifra avrai bisogno di più caratteri). Altrimenti, se l'intero ha una cifra sola è sufficiente un assegnamento char c=a+'0'; con a int

    Ciaociao
  • Re: Funzione C --> URGENTE domani ho l'esame!!!

    Se vuoi convertire un intero in un char, puoi usare il cast con il rischio di perdere precisione dato che l'intero è a 32 o 16 bit mentre il char è a 8 bit;

    se invece intendevi una conversione di un intero in una stringa (quindi array di char) ti posto queste 2 funzioni che ho fatto io per gestirmi questa esigenza:
    
    /*
    Data una stringa la capovolge
    */
    void capovolgi(char *str){
        int n = (strlen(str) - 1);
        int i = 0;
        char tmp;
        
        if(str[i]=='-')
            i++;
            
        while(i<n){
            tmp=str[i];
            str[i]=str[n];
            str[n]=tmp;
            n--;
            i++;
        }  
                  
    }   
     
    /*
    Dato un intero, esso restituisce la stringa corrispondente
    */
    char *itostring(int x){
        char *ris = (char *)malloc(sizeof(char)*15);//il 15 è il numero di cifre massimo, se il numero è negativo un char viene sacrificato per il segno meno, tale valore puoi comunque modificarlo
        int k=0;
        
        if(x<0){
            x = x * (-1);
            ris[k]='-';
            k++;
        }
           
        while(x>0){
           ris[k]=(x%10) + '0';
           x/=10; 
           k++;    
        }
        ris[k]='\0';
        
        capovolgi(ris);
    
        return ris; 
    }
    
  • Re: Funzione C --> URGENTE domani ho l'esame!!!

    Ecco come si chiamava, "itoa", al tempo in cui mi ero fatto queste funzioni mi avevano detto che già c'era una funzione della libreria C che faceva questo e mi avevano detto anche il nome, però me lo ero scordato...
    va be, ormai ho postato quelle mie 2 funzioni, che sicuramente confronto alla itoa, sono una schifezza
Devi accedere o registrarti per scrivere nel forum
3 risposte