PDA

Visualizza la versione completa : [C] Visualizzazione dei caratteri di una stringa


Vincent
14-01-2007, 14:42
salve, ho una stringa...composta da 0123456789
acquisita con fgets( Stringa, 10, stdin );

se voglio stampare i caratteri singolarmente mi stampa strani simboli...tipo ascii come risolvo?

andbin
14-01-2007, 15:00
Originariamente inviato da Vincent
salve, ho una stringa...composta da 0123456789
acquisita con fgets( Stringa, 10, stdin );

se voglio stampare i caratteri singolarmente mi stampa strani simboli...tipo ascii come risolvo? Innanzitutto fgets memorizza nel buffer anche il carattere '\n' (ma solo se c' sufficiente spazio) e di seguito memorizza il carattere nullo. Quindi il buffer dovrebbe essere lungo come minimo 11 caratteri.


#include <stdio.h>
#include <string.h>

int main (void)
{
char buf[12], *p;
size_t i, l;

fgets (buf, sizeof (buf), stdin);

if ((p = strchr (buf, '\n')) != NULL)
*p = '\0';

l = strlen (buf);

for (i = 0; i < l; i++)
printf ("%c\n", buf[i]);

return 0;
}

Vincent
14-01-2007, 15:42
come faccio a fare in modo che nella stringa possa inserire solo lettere, e non numeri o simboli ad eccetto della chiocciola?

donato.sciarra
14-01-2007, 20:01
correggetemi se sbaglio !

se non erro fscanf va come la scanf..quindi

scanf("%[ aAbBcC@012]", &stringa);

questa inserisce nella stringa solo i caratteri inclusi tra parentesi quadre scartando automaticamente tutti gli altri ! (ricorda che per il buffer della tastiera viene cmq intasato...e dovrai provvede con qualche tecnica a pulirlo)

fscanf(ptrFILE, "%[ aAbBcC@012]", &stringa);


se sbaglio correggetemi !


ciau :ciauz:

Vincent
15-01-2007, 20:26
ho bisogno di creare una funzione a parte...infatti non posso usare scanf...nel mio progetto!
Per questo ascquisisco le stringhe con fgets(.....), e quindi devo creare un funzione che presa in ingresso una stringa, controlli che in questa ci siano solo lettere, spazi o al massimo una @. numeri, simbili o caratteri strani non sono consentiti.

Ti ringrazio comunque...

donato.sciarra
15-01-2007, 20:55
Potresti usare le funzioni della libreria string.h e chiedere

isdigit() un numero?
isalpha() un carattere?
isadigit() un numero o un carattere?

giocando con i valori 0 e !0 restituiti da queste funzioni!
scorri tutta la stringa tramite un puntatore fin quando non arrivi a "\0"...


altri modi ora nn me ne vengono....ciau :ciauz:


prova e fai sapere come va ...

Loading