Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    []Ritorno al C

    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!

  2. #2
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Non è molto chiaro... qual'è il criterio?

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

    Prova a postare qualche info in più
    Linux user number 403381

    Stop TCPA!

  3. #3
    si della stringa di esempio "E12" devo prendere solo la parte numerica, che deve essere memorizzata in una variabile intera.

  4. #4
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    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
    Linux user number 403381

    Stop TCPA!

  5. #5
    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
    codice:
    isdigit(char c)
    .Per vedere se un carattere è una lettera usa la funzione
    codice:
    isalpha(char c)
    . Queste due funzioni stanno nella libreria
    codice:
    ctype.h

  6. #6
    Grazie a tutti,
    ho già sisolto usando sscanf(stringa_iniziale, "%1s%d", &stringa_iniziale[0], &numero)


    siete stati tutti ugualmente molto gentili, gracias

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.