Ciao a tutti/e!! ho una domanda da fare.. mi è stato assegnato per casa un semplice programmino in C (da svolgere senza l'ausilio di librerie strane, solo ctype e stdio ) del quale vi posto la consegna e il codice da me scritto:
Implementare la funzione int estremi(char* a, char* b, char*c), che ritorna 1 se la stringa a inizia con
la stringa b e termina con la stringa c, 0 altrimenti.
Casi particolari:
Se b e' una stringa di lunghezza nulla, la condizione per cui a inizia con b e' sempre vericata. Se c e' una
stringa di lunghezza nulla, la condizione per cui a termina con c e' sempre vericata.
Se a e' una stringa di lunghezza nulla, la funzione ritorna 1 se e solo se b e c hanno a loro volta lunghezza nulla.
#include<stdio.h>
#include<ctype.h>
#define MAX 250
int len(char *s)
{
int t=0;
while (s[t]!='\0')
t++;
return t;
}
int main()
{
char a[MAX], b[MAX], c[MAX];
printf("inserisci la prima stringa:\n");
scanf("%s", a);
printf("inserisci la seconda stringa:\n");
scanf("%s", b);
printf("inserisci la terza stringa:\n");
scanf("%s", c);
printf("la funzione ritorna %d\n", estremi(a,b,c));
return 0;
}
int estremi(char *a,char *b,char *c)
{
int i, j;
if (c==NULL)
{
if(a==NULL && b==NULL)
return 1;
}
if (c==NULL && b==NULL && a!=NULL)
return 1;
for (i=0;i<len(b);i++)
{
if (a[i]!=b[i])
return 0;
}
for (j=0;j<len(c);j++)
{
if (a[len(a)-len(c)+j]!=c[j])
return 0;
}
return 1;
}
vi prego di non ridere per la banalità dell'esercizio.. tuttavia mi sono posto il problema di come mettere in input una stringa nulla, visto che dando semplicemente invio mi si abbassa la linea di immissione di una riga (strano direte!?!?).
Giusto per dare qualche info (magari vi torna utile) uso CODEBLOCK e come compilatore ho impostato GNU GCC compliler..
Grazie a tutti!!