PDA

Visualizza la versione completa : [C] Significato dell'operatore !


giumanji
18-01-2012, 20:38
Salve a tutti sono nuovo del forum e sto cercando di imparare a programmare in c. Stavo cercando una soluzione ad un programma su internet e ho trovato un programma in cui c'era ad una certa linea di codice figurava il codice !uguale. Ora a parte la parola uguale ma in generale che significa il " ! " messo prima di una qualche parola? Se interessa di seguito c'è il programma e non capisco la riga con la freccia e quindi l'if seguente che da ad uguale il valore 1. Grazie in anticipo per l'aiuto.


#include<stdio.h>
#include<string.h>
#define MAX 1000
int main(){
int i=0,len,uguali=0;
char frase[MAX],aux=-1,aux2=-1;
printf("inserire la frase : ");
gets(frase);
len = strlen(frase);
while(frase[i] != '\0' && !uguali)<------------------che significa????
if(frase[i] == aux && aux == aux2)
uguali = 1;
else{
aux = aux2;
aux2 = frase[i++];
}
if(uguali)
printf("compaiono almeno 3 caratteri uguali consecutivi, il primo trovato e` : %c\n",aux);
else
printf("non compaiono almeno 3 caratteri uguali consecutivi\n");
system("PAUSE");
}

oregon
18-01-2012, 20:43
Spero che tu voglia imparare il linguaggio C da un libro ...

! è l'operatore logico di negazione

!espr ritorna 0 se espr ritorna un valore diverso da 0;
ritorna 1 se espr ritorna il valore uguale a 0.

giumanji
18-01-2012, 21:10
quindi quel pezzo che avevo indicato significa: non uguali ed ''uguali'' è uguale a zero e quindi significa che frase deve essere diverso da fine stringa e contemporaneamente ''uguali'' deve essere un valore diverso da zero o sbaglio??

keykode20
18-01-2012, 21:28
la condizione del while viene valutata solo se :
la stringa va a capo e la variabile "uguali" cambia di stato (cioè se è diversa da zero)

giumanji
18-01-2012, 21:52
Ok grazie mille a tutti per le risposte. Alla prossima che sicuramente sarà molto presto :-):-)

Loading