Ciao a tutti!!!Questa è la prima volta che scrivo in un forum! Speriamo di iniziare bene...
Vado subito al dunque: è da una settimana che provo a capire qualcosa del C++ e detto sinceramente sono ancora parecchio confuso(premetto che è anche la prima volta che mi avvicino ad un linguaggio di programmazione).
Ho provato a scrivere un programma ma come avevo previsto... non parte.Mi farebbe piacere se qualcuno potesse aiutarmi a capire dove sbaglio... almeno so da dove cominciare!
Non pretendo che mi aiutiate a correggere tutto, ma almeno a capire qualcosina in più. Grazie a tutti!!! E state attenti... la visione è consigliata soltanto ad un pubblico adulto!!!VVoVe:
Questo è il testo dell'esercizio che ho provato a fare:
<<< Definire un tipo 'boolean' i cui possibili valori sono 'FALSE' e 'TRUE'.
Scrivere una funzione 'suffix' che prende come argomento due stringhe 'word' e 'sequence' e
restituisce un valore di tipo 'boolean', in particolare restituisce:
- 'TRUE' se 'sequence' è un suffisso di 'word',
- 'FALSE' altrimenti.
Nel 'main' del programma, leggere due parole 's1' e 's2' dallo standard input e visualizzare il risultato della funzione 'suffix' invocata su 's1' e 's2'.
NB. Per leggere una parola non è richiesto l’uso della funzione 'getchar'.
Suggerimento: puo’ essere utile definire una funzione 'length(s)' che restituisca la lunghezza
della stringa 's'.
Esempi.
word=”Programmazione”; sequence=”azione”; suffix restituisce TRUE
word=”Programmazione”; sequence=”amazione”; suffix restituisce FALSE >>>
E questo è il mio misero tentativo:
#include<stdio.h>
#include<stdlib.h>
#define MAX 50
typedef enum
{
FALSE,
TRUE
} boolean;
int main();
int lenght(char s[]);
boolean suffix(char word[],char sequence[]);
int main()
{
char s1[MAX],s2[MAX];
printf("Inserisci la prima parola: ");
scanf("%s",&s1);
printf("\n\nInserisci la seconda parola: ");
scanf("%s",&s2);
if((suffix(s1[],s2[]))==FALSE) // 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");
}
int lenght(char s[])
{
int i,l;
for(i=0,l=0;(i<MAX)&&(s[i]!='\n');i++)
l++;
return l;
}
boolean suffix(char word[],char sequence[])
{
int n,i,j,x=lenght(sequence[]),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;
}