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

    [C] - problema nella visualizzazione dei caratteri di una Stringa

    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?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: [C] - problema nella visualizzazione dei caratteri di una Stringa

    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.

    codice:
    #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;
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    come faccio a fare in modo che nella stringa possa inserire solo lettere, e non numeri o simboli ad eccetto della chiocciola?

  4. #4
    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
    Se una funzione riceve come argomento un puntatore di puntatore di puntatore quando la invochi ricordati che puo ricevere o un puntatore di puntatore di puntatore o l'indirizzo di un puntatore di puntatore

  5. #5
    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...

  6. #6
    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


    prova e fai sapere come va ...
    Se una funzione riceve come argomento un puntatore di puntatore di puntatore quando la invochi ricordati che puo ricevere o un puntatore di puntatore di puntatore o l'indirizzo di un puntatore di puntatore

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.