Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    8

    [C++] Controllo codice criptato

    Salve, ho preparato questo semplice codice in grado di convertire una lettera od un numero in un altro deciso dall'utente..
    ora, in alto ho aggiunto
    codice:
    #include <string>
    perchè avevo intenzione di fare lo stesso ma con parole più lunghe usando le stringhe, ho fatto vari tentativi ma senza successo :'(-
    ora, il codice è davvero semplicissimo, ma vorrei fare ad esempio che se scrivo "ABC", con il codice che trasforma tutto a +1, stampi indietro "BCD".
    Gracias

    codice:
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main(){
        char clean;
        char encrypt;
        
        cout<<"---------------Encrypter 2---------------"<<endl<<endl;
        
        cout<<"Enter the clean word: ";
        cin>>clean;
        
        encrypt = clean + 1;
        
        cout<<"Encrypted word: "<<encrypt<<endl<<endl;
        
        system("pause");
        
        return 0;
        
    }

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Beh, la vedo dura se non acquisisci una stringa invece di un singolo carattere.
    http://www.cplusplus.com/reference/string/getline/
    Poi aumenti della quantità voluta ogni singolo elemento (ci accedi con operator[] http://www.cplusplus.com/reference/s...perator%5B%5D/ ) e infine la stampi.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    8
    sono riuscito ad inserire le stringhe in questo modo

    codice:
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main(){
        string clean;
        string encrypt;
        
        cout<<"---------------Encrypter 2---------------"<<endl<<endl;
        
        cout<<"Enter the clean word: ";
        getline(cin, clean);
        
        encrypt = clean + 1;
        
        cout<<"Encrypted word: "<<encrypt<<endl<<endl;
        
        system("pause");
        
        return 0;
        
    }
    logicamente,
    codice:
    encrypt = clean + 1;
    non è più funzionante, da l'errore
    "No match for 'operator+' in 'clean + 1'".
    Grazie per l'aiuto, potresti spiegarmi come integrare l'"operator[]"?
    Ho seguito il link ma non ci ho capito molto e google oggi non mi è amico..graze -(:

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Beh, era nel secondo link.
    Una volta acquisita la stringa, puoi scorrerla come un normale array di char usando l'operator[], ovviamente avendo cura di non uscire dai limiti.

    codice:
    getline(cin, clean);
    
    for (size_t i=0; i < clean.size(); i++) {
        clean[i] += 1;
    }
    cout << clean << endl;
    oppure:
    codice:
    getline(cin, clean);
    encrypt.resize(clean.size());
    for (size_t i=0; i < clean.size(); i++) {
        encrypt[i] = clean[i] + 1;
    }
    cout << encrypt<< endl;
    a seconda se vuoi mantenere o no la stringa originale.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    8
    Beh,ovviamente devo studiarmi un altro po' di teoria,perchè non capisco ad esempio in
    codice:
    for (size_t i=0; i < clean.size(); i++) {
    cosa sia il "size_t",o nel secondo esempio, nel
    codice:
    encrypt.resize(clean.size());
    le funzioni resize e size non le ho ancora fatte.....in ogni caso ho capito il ciclo for, e così funziona.grazie 1000,utilissimo -(:

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    8
    Chiedo scusa per il doppio post, ma a chiunque possa servire magari,quello che ho capito è

    string.size=riporta il numero dei caratteri nella stringa
    string.resize=nel caso di "encrypt.resize(clean.size());" serve a ridurre il numero massimo di caratteri a quelli della stringa.size

    size_t=su questo c'è un po' di confusione..chi dice di usarlo come int,chi dice che serve a far girare i programmi su tutte le macchine..io ho tirato fuori che è un'intero unsigned e che viene usato per avere il numero corretto di bytes di una stringa da passaread altre funzioni......

    correggetemi se ho detto qualche boiata,grazie per l'aiuto

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475
    size e resize non sono funzioni ma metodi della classe, che puoi andare a leggere sulla documentazione per vedere cosa fanno.

    size_t è in effetti un intero, ma serve ad indicare una dimensione (size_type), quindi è più corretto usare quello.
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

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 © 2025 vBulletin Solutions, Inc. All rights reserved.