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

    [C++] Password verifica, stringhe

    Perchè non funziona?

    #include <stdio.h>
    #include <iostream.h>

    char username[11] = "Brainforce";
    char verifica_username[11];

    void main()
    {
    cin >> verifica_username;
    cout << username << "\n";
    cout << verifica_username << "\n";
    if(verifica_username[11] == username[11])
    {
    cout << "Vero";
    }
    else
    {
    cout << "Falso";
    }
    }

    Se faccio stampare le due user, username e username_verifica sono identiche ma all'if non sembra essere così, perche?

  2. #2
    Devi proprio ancora capire come funzionano le stringhe in C.
    Una stringa non è un tipo primitivo, in C/C++ è un array di caratteri, per confrontare due stringhe usa la funzione di libreria strcmp, oppure usa l'STL string.

  3. #3
    codice:
    #include <iostream.h>
    #include <string.h> //<-- include la funzione strcmp()
    
    void main(){
        char stringa1[20], stringa2[20];
        cout<<"Inserisci una stringa di max 20 caratteri : ";
    	cin>>stringa1;
    	cout<<"Inserisci un\'altra stringa di max 20 caratteri : ";
    	cin>>stringa2;
    	if(strcmp(stringa1, stringa2)==0){ //<-- da 0 se sono uguali
                cout<<"\nLe 2 stringhe sono uguali\n\n";
            }
    	else{
    	    cout<<"\nLe 2 stringhe sono diverse\n\n";
    	}
    }

  4. #4
    Il problema e che non conosco certi comandi, e quindi tento di sparare li' qualke soluzione per arrivare al risultato, anche prendendo a volte la strada più lunga.

    Dove posso trovare una spiegazione almeno sommaria dei principali header? Non dirmi il libro che non ci crederai ma quì ne librerie ne biblioteca ne possegono uno decente.

    Anzi mi correggo, MANCO CE LANNO GRRRRR

    Mi tocca imparare rastrellando qua e la dalla rete documenti, esmpi e manuali,

  5. #5
    #include <iostream.h>
    #include <string.h>

    char username[10]={"Brainforce"};
    char verifica_username[10];

    void main()
    {
    cout << "L'username e' " << username << " Perche' mi dice che e' falso?\n";
    cout << "\nInserisci l'Username...";
    cin >> verifica_username;
    if(strcmp(username, verifica_username)==0)
    {
    cout << "Vero";
    }
    else
    {
    cout << "Falso";
    }
    }

    Mi stò esaurendo...... Addirittura se lo compilo mi esce 2 volte la scritta "L'username è"... doh non ci capisco più nulla, ma e idiota il mio compilatore?

  6. #6
    GODOOOOOOOOOOOO C++ Rulezzzzzz

    #include <iostream.h>
    #include <string.h>

    char username[10];

    void main()
    {
    cout << "\nInserisci l'Username... ";
    cin >> username;
    cout << "\nL'username inserito e'... " << username << endl;
    if(strcmp(username, "pass")==0)
    {
    cout << "Vero";
    }
    else
    {
    cout << "Falso";
    }
    }

  7. #7
    Oppure
    codice:
    #include <iostream> 
    #include <string> 
    using namespace std;
    
    void main() 
    { 
       string username;
       cout << "\nInserisci l'Username... "; 
       cin >> username; 
       cout << "\nL'username inserito e'... " << username << endl; 
       if(username == "pass") 
       { 
           cout << "Vero"; 
       } 
       else 
       { 
           cout << "Falso"; 
       } 
    }

  8. #8
    using namespace std;
    A cosa serve ? :master:

  9. #9
    Sai cos'è un namespace in C++?

    In pratica se due programmatori di librerie decidono di creare una classe che implementa un albero binario, e per puro caso entrambi chiamassero le proprie classi BTree, e tu nel tuo programma vuoi usare entrambe le librerie, perchè la libreria di Tizio ha un ottimo albero binario e la libreria di caio ha un ottimo algoritmo di hashing, il compilatore darebbe errore in fase di compilazione perchè la classe BTree è già definita.

    Allora tizio ingloba la sua libreria nel namespace tizio, e caio nel namespace caio.

    ora tu puoi usare entrambe le librerie specificando quale namespace vuoi usare per la classe BTree

    tizio::BTree albero;
    caio::HashTable hashtable;

    se però nel tuo programma usassi soltanto la libreria di tizio sarebbe più comodo evitare di scrivere

    tizio::Btree albero
    e scrivere solo
    BTree albero

    per fare questo dici al compilatore che stai usando il namespace tizio con l'istruzione

    using namespace tizio;

    siccome la STL è definita nel manespace std, ecco svelato l'arcano.

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.