Problema con programmino in C
Ragazzi buona sera. HO un problema con questo programmino nel quale ho voluto mettere a confronto due stringhe inserite dall' utente ,utilizzando la strcmp come segue:
solo che qunado immetto tutti i dati non mi da nessuno dei due output video previsti... potreste darmi una mano Grazie.
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char d,c; printf("Inserisci una stringa:"); scanf("%s",&d); printf("inserisci una seconda stringa:"); scanf("%s",&c); char a[d],b[c]; if (strcmp(a,b)== 0) printf("Le due stringhe sono uguali"); else if (strcmp(a,b) < 0) printf("la prima stringha e minore della seconda"); system("PAUSE"); return 0; }
solo che qunado immetto tutti i dati non mi da nessuno dei due output video previsti... potreste darmi una mano Grazie.
Risposte
char a[d],b[c];
Non e' chiaro cosa voglia fare con questa riga. Quello che mi viene in mente e' che dichiarando cosi' intendi mettere dentro i vettori a e b le stringhe d,c. Beh, e' sbagliato, perche' con questa sintassi stai dichiarando due nuovi vettori che hanno dimensione d,c (che sono char, di conseguenza difficilmente ha senso fare una cosa simile).
Puoi correggerlo cosi':
#include <stdio.h> #include <stdlib.h> #include <string.h> #define N 10 int main(void) { char d[N],c[N]; // memorizzi la stringa direttamente sui due vettori printf("Inserisci una stringa:"); scanf("%s",d); printf("inserisci una seconda stringa:"); scanf("%s",c); if (strcmp(d,c)== 0) printf("Le due stringhe sono uguali"); else if (strcmp(d,c) < 0) printf("la prima stringha e minore della seconda"); system("PAUSE"); return 0; }
come ti è già stato detto, quei due array a e b a che servono??? la tua string compare la puoi eseguire direttamente su c e d (che è ovviamente dove hai acquisito l'input)
Il codice è insensato, ripassati i puntatori.
Ti modifico leggermente il code al volo, usando array di char allocati staticamenti nello stack.
Ti modifico leggermente il code al volo, usando array di char allocati staticamenti nello stack.
#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char d[100],c[100]; printf("Inserisci una stringa:"); scanf("%s",d); printf("inserisci una seconda stringa:"); scanf("%s",c); if (!strcmp(d,c)) printf("Le due stringhe sono uguali"); else printf("la prima stringha e minore della seconda"); return 0; }