Consenso all'uso dei cookies

SITO1 -- SITO2 -- Forum2 -- CercaGlobale -- Informativa su Cookie e Privacy

Questo Forum1 è in sola lettura -- Usa il Forum2


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Condizionale C programming
#1
Salve, oggi mi sono dato all' immaginazione con un programma, anzi pacchetto abbastanza curioso. Mi sono bloccato alla condizione, dato che non l'ho mai fatta(hey non pensiate che non sappia la differenza tra IF ed ELSE).

Ecco di norma... per un esempio
Codice:
#include <stdlib.h>
#include <stdio.h>
char ciccio[30];
printf("Dimmi ed io rispondo\n");
scanf("%s",ciccio);

//ecco il casino

if (ciccio == "ciao")

{
       printf("Ciao sono il tuo computer!!\n"); // PERCHE' NON VA?
}

else
printf("Non capisco");


Ecco non riesco a dire che deve accettare la parola "ciao" inserita dall'utente mi da sempre "non capisco", sono improntato con il python, sicuramente non è corretta la sintassi. AIUTOOOOOOO
Questa è solo una piccola parte del programma;

A presto da Massimo
Cita messaggio
#2
Per confrontare le stringhe in C si usa la funzione strcmp. Ecco come, nel tuo caso:

Codice:
if ( strcmp(ciccio, "ciao") == 0)

La funzione strcmp restituisce zero se le stringhe sono uguali, così hai capito a che serve "==0" nel codice che ti ho postato.

QUI spiega più dettagliatamente.


Ecco il programma funzionante:

Codice:
#include <stdlib.h>
#include <stdio.h>
int main(){

char ciccio[30];

printf("Dimmi ed io rispondo\n");
scanf("%s",ciccio);



if ( strcmp(ciccio, "ciao") == 0){
       printf("Ciao sono il tuo computer!!\n");
}

else{
printf("Non capisco");
}
}
Sono un principiante con tanta voglia di imparare.

[Immagine: http://t3.gstatic.com/images?q=tbn:ANd9G...xV6aKxqMCQ]
Cita messaggio
#3
(30-07-2012, 09:46 )Logan Ha scritto: Per confrontare le stringhe in C si usa la funzione strcmp. Ecco come, nel tuo caso:

Codice:
if ( strcmp(ciccio, "ciao") == 0)

La funzione strcmp restituisce zero se le stringhe sono uguali, così hai capito a che serve "==0" nel codice che ti ho postato.

QUI spiega più dettagliatamente.


Ecco il programma funzionante:

Codice:
#include <stdlib.h>
#include <stdio.h>
int main(){

char ciccio[30];

printf("Dimmi ed io rispondo\n");
scanf("%s",ciccio);



if ( strcmp(ciccio, "ciao") == 0){
       printf("Ciao sono il tuo computer!!\n");
}

else{
printf("Non capisco");
}
}

Ti ringrazio della tua rispostaCool sei stato molto chiaro, ma se io volessi mettere al posto di "ciao" due parole: "come stai",

L' ELSE IF non funziona, ma se metto le due parole attaccate si avvia :"comestai"


A presto Massimo
Cita messaggio
#4
e perché non funziona?
"come stai" è UNA stringa (in C un array di caratteri), ossia una sequnza di caratteri; lo SPAZIO è un carattere.
Il mio blog: http://zerozerocent.blogspot.it/
Legge di Murphy: SE QUALCOSA PUO' ANDAR MALE, LO FARA'
Cita messaggio
#5
(30-07-2012, 23:26 )BAT Ha scritto: e perché non funziona?
"come stai" è UNA stringa (in C un array di caratteri), ossia una sequnza di caratteri; lo SPAZIO è un carattere.

ECCO QUA'

Codice:
else if (strcmp(a, "come stai")==0)

    {
        printf("Bene grazie!\n");
    }

Ci sono errori?
Cita messaggio
#6
sintatticamente il pezzo di codice che hai postato è corretto; comunque devi sempre provare il programma reale compilandolo e facendolo girare: sulla sola carta non si impara a programmare.
Il mio blog: http://zerozerocent.blogspot.it/
Legge di Murphy: SE QUALCOSA PUO' ANDAR MALE, LO FARA'
Cita messaggio
#7
Il problema in questo caso invece è scanf... usa gets:

Codice:
gets(a);

Ecco un esepio:

Codice:
#include <stdlib.h>
#include <stdio.h>
int main(){

char a[30];

printf("Dimmi ed io rispondo\n");
gets(a);



if ( strcmp(a, "come stai") == 0){
       printf("BENE, GRAZIE!!\n");
}

else{
printf("Non capisco");
}
}

La lettura con scanf si blocca quando arriva ad uno spazio.
Sono un principiante con tanta voglia di imparare.

[Immagine: http://t3.gstatic.com/images?q=tbn:ANd9G...xV6aKxqMCQ]
Cita messaggio
#8
MA allora chiaritemi le idee,
Quando si usa lo SCANF ?

Quando si usa GETS()?

QUANDO si usa GETCHAR?

Si può abbreviare la sintassi:

if (srtcmp(a, "ciao" )==0)

{
//// è troppo complicato, o meglio devo capire dal principio cosa significa "STRCMP"
}

Scusate la poca velocità nel capire ma non ho il programmatore che mi dice tutto per oro colatoAngry AHAH magari, ma ci posso riuscire anche se complesso.

Grazieeeeeeee Fallita
Cita messaggio
#9
Ti consiglio di leggere QUESTO, QUESTO e QUESTO. Ti chiarirà le idee.

Per quanto riguarda strcmp, significa STRING COMPARE ovvero, compara stringhe.

Leggi anche questo Sad
Sono un principiante con tanta voglia di imparare.

[Immagine: http://t3.gstatic.com/images?q=tbn:ANd9G...xV6aKxqMCQ]
Cita messaggio
#10
(31-07-2012, 13:30 )Logan Ha scritto: Ti consiglio di leggere QUESTO, QUESTO e QUESTO. Ti chiarirà le idee.

Per quanto riguarda strcmp, significa STRING COMPARE ovvero, compara stringhe.

Leggi anche questo Sad

PORCA PALETTA, l' Informatica è grande.ConfusedArrendersi
Cita messaggio


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)