dubbio in c..
Michele Tameni
michele a amdplanet.it
Mar 5 Nov 2002 18:26:10 UTC
stavo facendo un piccolo compito che mi è stato assegnato a scuola..
server a verificare che le frasi, lette al contrario senza tener conto
degli spazi, siano le stesse...
un esempio...
"o mordo tua nuora o aro un autodromo" ..:)
con questa il programmino funziona..ma ad esempio se metto la parola
otto mi da un Segmentation fault... da buon principiante in c non riesco
a risolvere il prblema anche se ho capito che è nel controllo
if(a[min]!=a[max]) ok=1;
qualcuno sa come posso risolvere e ha qualche consiglio su come
migliorare questo alquanto inutile programma?
ciao e grazie!!
==================================================================
#include <stdio.h>
char a[80];
char t;
int i,c,m,l,s,min,max,ok;
main()
{
s=0;
printf("Dammi la stringa da esaminare:\n");
fgets(a, 80, stdin);
printf("La stringa è:\n");
for(i=0;a[i]!=0;i++) printf("%c", a[i]);
/* tolgo gli spazi dalla stringa */
for(i=0;a[i]!=0;i++)
{
//printf("analisi lettera %c\n", a[i]);
if(a[i]==32){
//printf("spazio vuoto nella posizione %d\n",i);
s++;
m=i;
for(c=i+1;a[c]!=0;m++ && c++)
{
a[m]=a[c];
}
}
}
printf("la stringa senza spazi è:\n");
for(i=0;a[i]!=0;i++) printf("%c", a[i]);
/* controllo se leggendola al contrario è la stessa */
l=strlen(a);
max=l-(s+2);
for(min=0;min!=max;max-- && min++)
{
if(a[min]!=a[max]) ok=1;
}
if(ok==0) printf("Si, la frase corrisponde alla richieste\n");
if(ok==1) printf("No, la frase non corrisponde\n");
}
Maggiori informazioni sulla lista
Lug
|