Problema con programmino in C

llwC
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:
#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
ebrunaway
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;
    }

giozh
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)

nessuno.nobody
Il codice è insensato, ripassati i puntatori.
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;
}

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.