Newsgroup: it.comp.lang.c
Titolo: Problema cn funzione squeeze (piuttosto lungo....)

salve ragazzi.... scusate per il post lunghetto, ma nn riesco a venirne 
fuori
nn sapevo se la gets ritornava la lunghezza delle stringhe acquisite... e 
allora l'ho fatto tramite getchar()... (gnurant' che sono!)
cmq, alla fine il programma dovrebbe outputtarmi la prim stringa SENZA i 
caratteri che sono contenuti anche nella seconda, e invece nn mi outputta 
niente.... dov'è l'errore? grazie! scusate ancora...
/* Cancella da s1, tutti i caratteri che sono contenuti anche nella stringa 
s2 */
#include<stdio.h>
#include<stdlib.h>
#define MAX 100
main()
{
        int c, i, j, x;
        int len1, len2;
        int s1[MAX], s2[MAX];
        system("clear");
        fprintf(stdout, "%s", "Inserisci la prima stringa: \n");
        i=0;
        while(i<MAX-1 && (c=getchar())!='\n' && c!=EOF)
                s1[i]=c;
        if(c=='\n')
        {
                s1[i]='\n';
                i++;
        }
        s1[i]='\0';
        len1=i;                                 /* Lunghezza della stringa 
acquisita */
/*----------------------------------------------------------------------------------------------*/
        fprintf(stdout, "%s", "Inserisci la seconda stringa: \n");
        j=0;
        while(j<MAX-1 && (c=getchar())!='\n' && c!=EOF)
                s2[j]=c;
        if(c=='\n')
        {
                s2[j]='\n';
                j++;
        }
        s2[j]='\0';
        len2=j;                                 /* Lunghezza della seconda 
stringa */
/*-----------------------------------------------------------------------------------------------*/
        i=x=0;
        while(i<len1-1)
                for(j=0; j<len2-1; j++)
                                if(s1[i]!=s2[j])
                                        s1[x++]=s2[j];
        s1[x++]='\n';
        s1[x]='\0';
 
        i=0;                            /* Output della stringa modificata 
*/
        while(s1[i]!='\0')
                putchar(s1[i++]);
}

                 s1[i]=c;
scusa, ma non manca un incremento dell'indice i ?
magari ho capito  male il senso del programma :)
ciao,
	Marcello
------------------------------------
take a look at 
http://www.physics.it
------------------------------------

oddio c'hai ragione! sto dando craniate contro il monitor.... dici che m
farò abbastanza male?

ehm... scusate ancora, ho ridimensionato un po' il codice, ma non riesco 
cmq  a vede dov'è l'errore, a ogni piccola modifica me ne da uno diverso..
c dareste una controllata? grazie!!!
#include<stdio.h>
#define MAX 100
main()
{
        char s1[MAX], s2[MAX];
        char i, j, x=0;
        gets(s1);
        gets(s2);
        i=0;
        while(s1[i]!='\0')                      /* Scansione della prima stringa */
        {
                j=0;
                while(s2[j]!='\0')              /* Scansione della seconda */
                {
                        if(s1[posizione]!=s2[j])
                                s1[x++]=s2[j];
                        j++;
                }
                i++;
        }
 
        s1[x]='\0';
        puts(s1);
}                       

 stringa) con questo.
<..........>
si, scusa, la variabile posizione l'ho inserita per sbaglio nel post.... nn 
era quello l'errore di cui mi lamentavo, infatti la compilazione andava a 
buon fine. 
tuttavia ho inserito la tua  parte di codice al posto del secondo ciclo, ma 
nn va lo stesso...:-S
t ringrazio lo stesso cmq!!! mi sa che passerņ agli altri esercizi...;-)
ne ho le ba**e piene di questo squeeze... Ciao ciao! e grazie ancora

                 s1[x++] = s1[i];
T ringrazio! cosě il programma funziona (avevo riscritto la parte errata su
una copia sbagliata del programma) perň, mi spiegheresti gentilmente cosa
significa questa parte di codice? grazie ancora!
ciao ciao

grazie tante, tutto chiaro!