Salve a tutti.
Sono alle prime armi con il C, e purtroppo tra meno di un mese devo affrontare l'esame di informatica relativo proprio a questo linguaggio.
Ho provato a svolgere degli esami vecchi, e ho trovato alcune difficoltà; in particolare, questa mattina ho provato a svolgerne uno, ma provando ad eseguirlo sul compilatore mi da errore e non riesco a farlo girare.
Vi posto il testo qui sotto: ho provato più volte a trovare l'errore, ma non sono proprio riuscita a capire dove ho sbagliato. Potreste darci un'occhiata? grazie mille in anticipo.
Il testo è il seguente:
Scrivere un programma in linguaggio C che legga da standard input una stringa di caratteri Q lunga
al massimo 30 caratteri che non contiene spazi.
Dopo aver definito un array di stringhe S contenente le seguenti stringhe:
”Pippo","Pluto","Paperino","Topolino","Paperone"
il programma scriva a video tutte le stringhe dell’array S i cui caratteri iniziali coincidono esattamente
con quelli della stringa Q. Il programma dovrà inoltre scrivere a video “No match found” se
una tale stringa non esiste nell’array S.
io ho provato a risolverlo così:
#include <stdio.h>
#include <stdlib.h>
#define MAX 30
#define DIM 5
void leggi_stringa(char s[]){
printf("Inserire la nuova parola:\n");
scanf("%s",s);
}
int confronta_stringhe(char s1[],char *s2[]) {
int j=0;
int i;
for(i=0;i<DIM;i++){
while (s1[j]!='\0'){
if (s2[j]!=s1[j]) {
printf("Le due stringhe non sono uguali");
return 1;
}
else j++;
return 0;
}
}
int main() {
char q[MAX];
char* s[DIM]={"Pippo","Pluto","Paperino","Topolino","Paperone"};
int i,j;
leggi_stringa(q);
int x=confronta_stringhe(q,s);
if (x==1) {
printf ("No match found");
return 1;
}
else {
printf("%s",s};
return 0;
}
}