Controllare formato stringa

di il
5 risposte

Controllare formato stringa

Ciao, ho due quesiti riguardo i char in c.
In pratica all'interno di un client-server devo inviare delle stringhe con un certo formato(carattere, spazio, numero, spazio, numero, \n) . Volevo sapere se esiste un modo rapido per controllare che il formato sia giusto.

Seconda domanda. Se ho una stringa che mi contiene dei numeri e caratteri separati da spazi, come posso prendere i singoli numeri/caratteri e salvarli in semplici variabili?

Grazie

5 Risposte

  • Re: Controllare formato stringa

    Il primo quesito non si capisce.

    Per il secondo, ci sono diversi modi, ad esempio con la funzione sscanf
  • Re: Controllare formato stringa

    Mi spiego meglio.
    Io devo inviare una stringa che contiene un carattere e due numeri. Ciascun elemento in questa stringa è separato con un spazio e ho l'invio a capo come ultimo carattere. Io ho bisogno di verificare che la stringa sia in questo formato. Se ad esempio manca lo "\n" non devo accettare quella stringa. È un po' più chiaro? Forse si può fare sempre con la sscanf?
  • Re: Controllare formato stringa

    Con la sscanf leggi le varie parti della stringa e, se soddisfano le regole di cui parli, la invii.
  • Re: Controllare formato stringa

    Perfetto, ti ringrazio
  • Re: Controllare formato stringa

    Stando a come la descrivi, la tua stringa è formattata in modo molto semplice, preciso e rigido, significa che la sua lettura/scrittura è molto semplice e non richiede funzioni generiche.

    Considera che una stringa in C è un array di valori di tipo char (o wchar_t se hai bisogno di usare un set esteso di caratteri) in cui il carattere finale è sempre '\0' (valore zero), che sta ad indicare che la sequenza di caratteri è terminata. Ogni valore in tale array ha una corrispondenza biunivoca con un preciso carattere, tale corrispondenza si chiama codifica dei caratteri. Dovrai solo decidere quale codifica dei caratteri adoperare. Ad ogni modo, che sia UTF-8, UTF-32 o il Microsoft Windows Codepage (ANSI), i primi 127 caratteri sono codificati sempre come ASCII. Vale a dire ad esempio che lo spazio corrisponde al valore 32, i caratteri numerici vanno dal valore 48 per il carattere '0' al valore 57 per il carattere '9' e il carattere '\n' corrisponde al valore 10 (vedi ASCII table). Se quel che ho scritto ti è limpido, allora capisci anche che è molto semplice codificare e decodificare la tua stringa.
Devi accedere o registrarti per scrivere nel forum
5 risposte