Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Problema variabile

  1. #1

    Problema variabile

    Ho un problema riguardo ad una variabile.
    In quanto quanto gli assegno un'uguaglianza (es. variabile==ciao),e mi da un errore,penso che sia perchè il programma di compilazione (Dev-C++), sottointende l'uguaglianza ad un'altra variabile, che però non esiste perchè io intendo l'uguaglianza alla stringa "ciao".

  2. #2
    Uhm, hai le idee un po' confuse:

    Primo, la differenza tra ASSEGNAMENTO e CONFRONTO:

    1) == è l'operatore di confronto, (X==0) vale TRUE se x contiene il valore numerico 0 FALSE al contrario.

    2) = è l'operatore di assegnamento, (X=0) è un'espressione che ha un valore logico poco utile, ma che CAMBIA il contenuto di X e lo imposta a zero.

    Chiarito questo, probabilmente il tuo problema sta tutto nel fatto che hai dimenticato che le costanti stringa vanno racchiuse tra virgolette, altrimenti il compilatore cerca di interpretarle come variabili:

    (variabile == "ciao")

    è una espressione di confronto che vale TRUE se la variabile è di tipo stringa e il suo contenuto è la stringa "ciao", FALSE in caso contrario.
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  3. #3
    Ah grazie, me l'ero scordato.

  4. #4
    Prego, non c'è di che!
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  5. #5
    ho fatto, ma non funziona!!!

  6. #6
    Cioè?

    Che errore ti da?
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  7. #7
    Non è che mi da un errore, il problema è quando eseguo il programma che quando arrivo al punto dove c'è "if" e poi "else" mi esegue sempre else anche scrivo la stringa contenente nel comando dell'if.

    Ad esempio:

    if (variabile=="ciao")
    {
    .....
    .....
    .....
    }
    else
    {
    ......
    ......
    ......
    }
    .....
    .......
    }

    Mi esegue sempre else anche se digito ciao.

  8. #8
    Cioè quello che stai dicendo è che il valore della variabile lo leggi da tastiera?

    Se è così, attenzione, perchè di solito nella variabile viene messo anche il carattere di invio, che quindi deve far parte del confronto...

    Stai molto attento con gli input da tastiera!

    Puoi vedere se il problema è questo, mettendo subito prima della if una assegnazione diretta:

    variabile="ciao"

    e vedere se così viene eseguita la parte if invece che quella else...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  9. #9
    Avete un pò le idee confuse tutti e due..

    In C il confronto tra stringhe si fà utilizzando la funzione strcmp() contenuta nel header <string.h>.

    Saluti..

  10. #10
    Originariamente inviato da Michele Facchin
    Avete un pò le idee confuse tutti e due..

    In C il confronto tra stringhe si fà utilizzando la funzione strcmp() contenuta nel header <string.h>.

    Saluti..
    Uhm, mi sa che sei tu a non aver letto tanto bene: l'unico linguaggio che viene citato nel post originale è il C++, nel quale, grazie all'overloading degli operatori, l'espressione di confronto che ho scritto è più che corretta.

    E comunque, in C le stringhe non esistono, esistono solo gli array di CHAR, se proprio vogliamo essere pignoli.
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

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.