[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Prog C] Trasformare una stringa in intero



>>>>> "L" == Leo  <leo@madnet.it> writes:

    L> Ciao a tutti, dovrei operare un incremento ad un numero
    L> rappresentato come stringa del tipo stringa = "A001" (valore
    L> ritornato da una query al postgres) trasformandolo in
    L> nuova_stringa = "A002" lasciando intatto la lettera iniziale ed
    L> incrementando modulo 1000.  Come posso fare ?

Controlli di rito(*) a parte, questa può essere una soluzione:

void
trasforma (const char *stringa, char *nuova_stringa)
{
  int num = atoi (stringa+1);

  num = (num + 1) % 1000;
  sprintf (nuova_stringa, "%c%03d", *stringa, num);
}

ciao, lele.

(*) controllo del formato di "stringa", che *deve* essere del tipo
Axxx; e nuova_stringa, che *deve* essere un array di almeno cinque
caratteri.
-- 
nickname: Lele Gaifax	| Quando vivro' di quello che ho pensato ieri
real: Emanuele Gaifas	| comincero' ad aver paura di chi mi copia.
email: lele@seldati.it	|		-- Fortunato Depero, 1929.


Reply to: