(C)Aiuto con problema grave
Ho un problema ke nn so risolvere..dovei stampare la stringa proprio come il formato della stringa fmt(ed essa puo' variare quindi inutile giocare su i+3 ecc)
char fmt[] = "#.###.###,#";
char num[] = ""; // In num verrà inserito un numero decimale da input
/* qui sostituisco il . con la ,*/
for ( i=0; num[i] != 0; i++)
{
if( num[i] =='.'){
num[i]=','; // Ho risolto inserendo nella stringa nell'istante di i la ,
printf("%s",num);
}
}
Ora avremo per es...1234.5 sotto forma di 1234,5...e qui posto il codice dove ho l'errore per l'operazione successiva..
while (i>=0 && j>=0) {
if (fmt[i] == '#') {
st[k]=num[j];
k--;
j--;
}
if (fmt[i] == '.') {
st[k] = '.';
i--;
} // quest ultimo if è sbagliato..nn fa quel ke deve fare e cmq nn credo ke basti per fare cio' ke mi serve
if (fmt[i] == ',') {
st[k] = ',';
i--;
}
}
printf("\n ris= %s",st);
}
Il mio obbiettivo era il seguente...dopo la conversione della ",", il ciclo scorre fmt e quando trova # stampa il numero di num[](ke nel frattempo è stato pres o in input e quindi definito),quando trova la virgola appunto stampèrà la virgola e quando trova il punto idem... Mi date una mano a fare cio'?Aiutooo sto impazzendo..kiedo a voi programmatori di hardware upgrade
risultato... input: 1234.5 [ con formato(#.###.###,#)] == 1.234,5
|