Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di hfish
    Registrato dal
    Dec 2000
    Messaggi
    3,180

    [C++] gestione e controlli su stringhe

    ciao a tutti

    ho un problemino nella gestione di una stringa...

    tramite cin passo al programma una stringa, e devo fare in modo che questa sia lunga al più 3 caratteri && che sia composta esclusivamente da cifre (NO lettere o caratteri speciali....)

    in caso di inserimento di 4 o più caratteri deve essere chiesto nuovamente l'ingresso della stringa...

    in caso di inserimento di lettere deve essere chiesto nuovamente l'inserimento della stringa...

    come posso fare??
    è tutto il pomeriggio che ci sbatto la testa!!
    Non dobbiamo trascurare la probabilità che il costante inculcare la credenza in Dio nelle menti dei bambini possa produrre un effetto così forte e duraturo sui loro cervelli non ancora completamente sviluppati, da diventare per loro tanto difficile sbarazzarsene, quanto per una scimmia disfarsi della sua istintiva paura o ripugnanza del serpente.

  2. #2
    ...Terrible warlords, good warlords, and an english song

  3. #3
    Ciao amico,

    guarda il programmino che ho scritto x te, forse ti può essere utile!

    codice:
    //Autore: Gnix
    //Data: 24.04.05 00:45
    //Compilato con: Dev-C++ 4.9.9.1
    
    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
        //Dichiarazione variabili
        string Strg;
        int iter = 0;
    
        //Etichetta raggiungibile col goto, ATTENZIONE all'utilizzo eccessivo della
        //parola chiave goto, essa crea (se se ne abusa) codice spaghetti
        RecvInput:
    
        //Stampa messaggio informativo
        cout << "Inserire un numero tra 999 e 0: ";
        
        //Ricevi e inserisci input nella variabile Strg
        getline(cin,Strg);
        
        //Controlla se la stringa è <= 3
        if(Strg.length() <= 3)
        {
            //Itera finchè la variabile iter e < della lunghezza della stringa
            while(iter < Strg.length())
            {
                //Casting del carattere alla posizione iter in valore 
                //intero (ASCII - int). Se esso è tra 0 e 9 stampa a video, in
                //caso contrario vai all'etichetta RecvInput e ripeti tutto
                if( ((int)Strg[iter]<= 57) && ((int)Strg[iter] >= 48))
                    cout << Strg[iter];
                else
                {
                    //Stampa messaggio d'errore e torna all'etichetta RecvInput
                    cout << Strg[iter] << " <-- Non è un numero\n" << endl;
                    goto RecvInput;
                }
                
                //incrementa iter. È stato utilizzato un while al posto di un for xkè
                //strutturalmente incrementa le prestazioni a livello di CPU e processi
                iter++;
            }
        }
        else
        {
            //Stampa messaggio d'errore e torna all'etichetta RecvInput
            cout << "--> Input non corretto <-- \n" << endl;
            goto RecvInput;
        }      
    
        //Ritorna intero
        return 0;
    }
    Sciau
    Gnix
    http://www.ptrace.net

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.