davidetecnik ha scritto:
Per un programma ho bisogno di convertire da 1234 a "1234"
non sapprei di preciso da dove cominciare
E vorrei sapere come sommare 2 numeri senza sommarli esempio 2 + 2 -> 22
In alternativa puoi costruirti una funzione che realizza il tuo scopo desiderato, utilizzando un po' matematica. Scusa l'implementazione grezza, ma vado di fretta. Non ci ho pensato più di tanto...
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int power(int base, int esponente);
void integerToString(int number, char *);
int number;
int main(int argc, char *argv[])
{
printf("Inserire un numero: ");
scanf("%d",&number);
int dim = round(log10(number))+1;
char stringa[dim];
integerToString(number, stringa);
printf("Numero = %d, convertito in stringa = %s",number, stringa);
return 0;
}
int power(int base, int esponente)
{
if(esponente == 0)
{
return 1;
}
return base*power(base, esponente-1);
}
void integerToString(int number, char * stringa)
{
int numberTemp;
int charNumber;
int dimensione = round(log10(number));
int d = power(10, dimensione);
int i;
int pos = 0;
int n = dimensione;
for(i=dimensione; i>=0;i--)
{
if(pos==0)
{
stringa[pos] = (number / power(10,dimensione)) + '0';
}
else if (n > 1)
{
numberTemp = number % power(10,n);
charNumber = (numberTemp /power(10, n-1)) ;
stringa[pos] = charNumber + '0';
}
else
{
charNumber = numberTemp % power(10,n);
stringa[pos] = charNumber + '0';
}
n = dimensione - pos;
pos++;
}
stringa[pos] = '\0';
return stringa;
}
Il codice è ceertamente da ripulire e ottimizzabile. Spero di esserti stato di aiuto.