PDA

Visualizza la versione completa : [C] Estrarre parte di una stringa


keko9
25-11-2005, 16:34
Ciao a tutti, mi trovo alle prese con un esame di Informatica1 all'universitÓ.

Ormai mi sono abituato al PHP dove non devo pensare a dichiarazioni e tipi di variabili...invece ora all'universitÓ devo fare un esame sul C, in cui bisogna essere preparati principalmente su funzioni e stringhe.

Ecco il mio problema: come faccio a prendere, da una stringa come "E12" il solo numero 12? con sscanf non ce la faccio! :(


ringrazio a tutti anticipatamente! :fagiano:

Fox82
25-11-2005, 16:48
Non Ŕ molto chiaro... qual'Ŕ il criterio?

Devi scartare il primo carattere? Devi considerare solo la parte numerica?

Prova a postare qualche info in pi¨

keko9
25-11-2005, 17:05
si della stringa di esempio "E12" devo prendere solo la parte numerica, che deve essere memorizzata in una variabile intera.

Fox82
25-11-2005, 17:34
La funzione che trasforma stringhe in interi Ŕ atoi (nella stdlib)

Per il resto... che formato ha la stringa?

C'Ŕ sempre un prefisso fatto di lettere? Ha lunghezza fissa?

Una volta capito questo si pu˛ pensare a come estrarre la parte numerica

murder eyes
25-11-2005, 17:56
se hai un prefisso con lettere e poi un numero la atoi ti tornerebbe 0. Quindi ti posizioni sull'inizio della stringa e scorri finchŔ non trovi un numero e da li in poi fai la atoi sul resto della stringa.
Per vedere se un carattere Ŕ un numero basta vedere se il suo codice ASCII sta tra 48 e 57 compresi(oppure usi la funzione
isdigit(char c).Per vedere se un carattere Ŕ una lettera usa la funzione
isalpha(char c). Queste due funzioni stanno nella libreria
ctype.h

keko9
25-11-2005, 18:37
Grazie a tutti,
ho giÓ sisolto usando sscanf(stringa_iniziale, "%1s%d", &stringa_iniziale[0], &numero)


siete stati tutti ugualmente molto gentili, gracias ;) :ciauz:

Loading