Ho corretto un po' il codice
Attenzione non fai distinzione tra C e C++codice:#include <stdio.h> #include <stdlib.h> #define MAX 50 typedef enum { FALSE = 0, TRUE } boolean; int lenght(char s[]); boolean suffix(char word[], char sequence[]); int main(void) { char s1[MAX]; char s2[MAX]; printf("Inserisci la prima parola: "); scanf("%s", s1); /*Un'array restituisce automaticamente un indirizzo*/ printf("\n\nInserisci la seconda parola: "); scanf("%s", s2); if(!suffix(s1, s2)) // ERROR: expected primary-expression before ']' token printf("\n\nLa seconda parola non e' un suffisso della prima.\n\n\n"); else printf("\n\nLa seconda parola e' un suffisso della prima.\n\n\n"); system("pause"); return 0; /*IMPORTANTE*/ } int lenght(char s[]) { int len; /*Le stringhe finiscono con '\0'*/ for(len = 0; (i < MAX) && (s[i] != '\0'); len++); return len; } boolean suffix(char word, char sequence) { int n, i, j; int x = lenght(sequence); int y = lenght(word); // ERROR: expected primary-expression before ']' token if(x >= y) return FALSE; else for(i = x - 1, j = y - 1; (sequence[i]==word[j]) && (i>=0); --i, --j, ++n); if(n==x) return TRUE; else return FALSE; }
Per il resto è solo conoscenza del linguaggio e logica, o algoritmi prefatti, scegli tu :/
In ogni caso approfondirei i puntatori, i puntatori a caratteri e il C in generale.
P.S.: Usa i tag CODE![]()
![]()


Rispondi quotando