Inviato 14 Febbraio 201213 anni Salve a tutti Voglio creare un programma che gestisce delle stringhe di testo. Cioè voglio per esempio eseguire un'istruzione se la stringa inserita è uguale a una stringa che voglio io. Io ho provato a impostare il codice in questo modo e il compilatore non segnala nessun errore, ma non ottengo il risultato che voglio. #include <stdio.h> #include <string.h> int main (void) { char a[50]; printf("Inserisci una parola: "); scanf("%c", &a); if ( a == "ciao" ) { printf("%c", a); } return 0; } Grazie a tutti per le risposte!!!!
Inviato 15 Febbraio 201213 anni naaaaaaa il confronto che stai facendo è tra l'indirizzo di memoria da cui parte il tuo array di char <a> e quello da cui parte la costante stringa non simbolica "ciao". Per i confronti tra stringhe si usa strcmp. Prova con if(strcmp(a, "ciao")==0)
Inviato 15 Febbraio 201213 anni Inoltre, per acquisire o stampare una stringa, il primo parametro di scanf e printf deve essere "%s" e non "%c".
Inviato 15 Febbraio 201213 anni Autore Grazie a tutti e due!!! Grazie jtagger il mio problema è quello che mi sono dilungato in un argomento che non ho mai trattato. Sto studiando ancora le strutture di controllo. Grazie robilyn per le specifiche di conversione non lo sapevo.
Salve a tutti
Voglio creare un programma che gestisce delle stringhe di testo.
Cioè voglio per esempio eseguire un'istruzione se la stringa inserita è uguale a una stringa che voglio io.
Io ho provato a impostare il codice in questo modo e il compilatore non segnala nessun errore, ma non ottengo il risultato che voglio.
#include <stdio.h>
#include <string.h>
int main (void)
{
char a[50];
printf("Inserisci una parola: ");
scanf("%c", &a);
if ( a == "ciao" ) {
printf("%c", a);
}
return 0;
}
Grazie a tutti per le risposte!!!!