PDA

Visualizza la versione completa : [C] if con piu condizioni


Montom
10-10-2005, 23:17
Dovrei fare in if con 2 condizioni,come posso fare?
del senso k vorrei fare in modo k la parola venga riconosciuta sia scritta in maiuscolo k in minuscolo,non si puo fare?
pensavo a una cosa del tipo or k c' in molti linguaggi..
(sono novizio del c)

if (strcmp (risposta,"saluto")==0)
{

unomichisiada
10-10-2005, 23:22
if (strcmp (tolower(risposta),"saluto")==0)
{ .....


Usi una funzione di libreria per convertire tutti i caratteri maiuscoli in minuscoli e fai in modo che la parola chiave (nella fattispecie "saluto") sia sempre tutta in minuscolo.
In questo modo ottieni un confronto case insensitive

Montom
10-10-2005, 23:31
graziemille!!!potresti indicarmi di quale funzione stai parlando?

oregon
10-10-2005, 23:54
tolower .. l'ha scritta nel codice d'esempio

Montom
11-10-2005, 00:21
e fa parte della libreria stdlib?

Montom
11-10-2005, 00:25
uffa non mi funziona :(

#include <stdio.h>
#include <stdlib.h>
int main()
{
char risposta[10];
printf("\n\n\tDigita la tua mossa: ");
scanf ("%s", &risposta);

if (strcmp (tolower(risposta),"ciao")==0)
{
printf("ciao");
}
system("pause");
}

oregon
11-10-2005, 00:31
In realta' c'e' un errore di fondo ...

La tolower lavora su un singolo carattere e non su una stringa ... quindi il codice fornito non puo' funzionare ...

Dovresti usare la funzione strcmpi che effettua il confronto delle stringhe ignorando il case, ovvero

if (strcmpi(risposta, "ciao")==0)

(e devi includere il file string.h)

Montom
11-10-2005, 00:33
BHE K DIRE,GRAZIE MILLE!! :D

oregon
11-10-2005, 00:35
Figurati ... ma adesso che conosci una nuova funzione di libreria, vai a studiarne il funzionamento ... non limitarti ad usarla ...

Montom
11-10-2005, 00:36
in che senso,spiegami meglio xke sono proprio niubbo :)
intendi aprire il file della libreria e vedere come funziona?

Loading