Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - divisore di stringa in sottostringhe
Forum - C/C++ - divisore di stringa in sottostringhe

Avatar
ciddazza (Normal User)
Newbie


Messaggi: 1
Iscritto: 09/06/2007

Segnala al moderatore
Postato alle 10:25
Mercoledì, 20/06/2007
salve a tutti ho 1 problema cn il programma ke ho fatto e nn riesco a capire dove sta... anke il compilatore nn sembra riuscire a darmi aiuto cn il debug, vi spiego cosa dovrebbe fare il programma.
dovrebbe fare inserire 1 stringa leggendo 1 carattere  alla volta (compresi di spaziatura) e terminare cn INVIO. dopo dovrebbe stampare la stringa e successivamente 1 ciclo dovrebbe scandirla e inserire ogni parola in 1 sottostringa(fino a 1 massimo di 10 sottostringhe) vi incollo il codice

//Programma ke divide 1 stringa in + stringhe senza gli spazi

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define TRUE 1
#define FALSE 0
main()
{
     //DICHIARAZIONE STRINGHE
    char stringa[510];
    char stringa1[510];
    char stringa2[510];
    char stringa3[510];
    char stringa4[510];
    char stringa5[510];
    char stringa6[510];
    char stringa7[510];
    char stringa8[510];
    char stringa9[510];
    char stringa10[510];
    int flag=FALSE,indice=-1,i,cont=0,j;
    
        //INSERIMENTO STRINGA
    printf ("Inserisci 1 stringa (INVIO per terminare)=>");
    
    do{
       indice++;
       scanf ("%c",stringa[indice]);
       }
           while (stringa[indice]!= '\n'&&(indice <511));
       stringa[indice]= '\0';
       printf ("La stringa iniziale e\' => %s\n",stringa);

    //INIZIO DIVISONE E STAMPA STRINGHE
    for (i=0;i<indice;i++)
    {
         if (!isspace((int)stringa))   //carattere diverso da spazio  
         {
             if (!flag)     //se non siamo a inizio parola
              {
                     flag=TRUE;   //segna inizio parola
                     cont++;      //contatore di sottostringhe utilizzate
                     j=0;         //indice delle sottostringhe
              }  
                    /*INIZIO DELLE STAMPE DELLE STRINGHE*/
             switch (cont)  
              {
                case 1:
                    {
                          if (j=0) //Se a inizio parola
                          printf ("Stringa1 => ");
                          stringa1[j]=stringa;
                          printf ("%c",stringa1[j]);
                          j++;
                          stringa1[j]='\0';
                          break;
                      }
                case 2:  
                   {
                          if(j=0)
                          printf ("\nStringa2 => ");
                          stringa2[j]=stringa;
                          printf ("%c",stringa2[j]);
                          j++;
                          stringa2[j]='\0';
                          break;
                      }
                case 3:  
                   {
                       if(j=0)
                       printf ("\nStringa3 => ");
                       stringa3[j]=stringa;
                       printf ("%c",stringa3[j]);
                       j++;
                       stringa3[j]='\0';
                       break;
                      }
                case 4:  
                   {
                       if(j=0)
                       printf ("\nStringa4 => ");
                       stringa4[j]=stringa;
                       printf ("%c",stringa4[j]);
                       j++;
                       stringa4[j]='\0';
                      }
                case 5:  
                   {
                       if(j=0)
                       printf ("\nStringa5 => ");
                       stringa5[j]=stringa;
                       printf ("%c",stringa5[j]);
                       j++;
                       stringa5[j]='\0';
                      }
                case 6:  
                   {
                       if(j=0)  //controllo ke sia l'inizio stringa
                       printf ("\nStringa6 => ");
                       stringa6[j]=stringa;
                       printf ("%c",stringa6[j]);
                       j++;
                       stringa6[j]='\0';
                      }
                case 7:  
                   {
                       if(j=0)  //controllo ke sia l'inizio stringa
                       printf ("\nStringa 7 => ");
                       stringa7[j]=stringa;
                       printf ("%c",stringa7[j]);
                       j++;
                       stringa7[j]='\0';
                      }
                case 8:
                   {
                       if(j=0)  //controllo ke sia l'inizio stringa
                       printf ("\nStringa8 => ");
                       stringa8[j]=stringa;
                       printf ("%c",stringa8[j]);
                       j++;
                       stringa8[j]='\0';
                      }
               case 9:
                   {
                       if(j=0)  //controllo ke sia l'inizio stringa
                       printf ("\nStringa9 => ");    
                       stringa9[j]=stringa;
                       printf ("%c",stringa9[j]);
                       j++;
                       stringa9[j]='\0';
                      }
              case 10:  
                   {
                       if(j=0)  //controllo ke sia l'inizio stringa
                       printf ("\nStringa10 => ");
                       stringa10[j]=stringa;
                       printf ("%c",stringa10[j]);
                       j++;
                       stringa10[j]='\0';
                      }
              } //FINE SWITCH
              printf ("\n");    
       }//FINE IF (NN SPAZI)
       else
       flag=FALSE;
    
    }//FINE FOR */
    system ("pause");
}    
      
    

PM Quote