Salve a tutti! sono appena appena iscritto al forum, in quanto devo ammettere che non vado così forte con la programmazione.. però devo superare un esame da 6crediti e devo fare dei programmini semplici semplici, senza nessun tipo di funzioni complicate, ma solo con librerie stdio.h e ctype.h e cicli if,for while.
Detto questo e dopo avervi annoiato, volevo un consiglio su un programma che devo implementare e che ora vi posto la consegna:
Implementare la funzione int confronta(char* a, char* b, int x), che ritorna 1 se i primi e gli ultimi x
caratteri di a e b sono uguali, 0 altrimenti.
Casi particolari: Se le due stringhe sono non nulle, e x e' maggiore della lunghezza di una delle due stringhe, la
funzione ritorna 0. Se b oppure a sono una stringa di lunghezza nulla, la funzione ritorna 1 se e solo se x == 0.
Se x == 0, la funzione ritorna 1
Il mio problema è soprattutto nei casi particolari, che devono essere inseriti nella funzione stessa e non nel main(). Vi posto il codice:
#include<stdio.h>
#include<ctype.h>
#define MAX 230
int confronta(char *a, char *b, int x)
{
int i;
/*if (x-len(a)>0)
{
printf("parametri errati!\n");
return 0;
}
if (x-len(b)>0)
{
printf("parametri errati!\n");
return 0;
}*/
for (i=0;i<x;i++)
{
if (a[i]!=b[i]&&a[len(a)-i-1]!=b[len(b)-i-1])
return 0;
}
return 1;
}
int len(char *s)
{
int t=0;
while (t!='\0')
t++;
return t;
}
int main()
{
char a[MAX], b[MAX];
int x;
printf("inserisci una stringa:\n");
scanf("%s",a);
printf("inserisci la seconda stringa:\n");
scanf("%s",b);
printf("inserisci un numero:\n");
scanf("%d", &x);
printf("la funzione ritorna %d\n", confronta(a,b,x));
return 0;
}
come risolvere?? grazie a tutti quelli che sapranno aiutarmi.. alla prossima!!!