[c] estrazione parole da una stringa

di
Anonimizzato12476
il
3 risposte

[c] estrazione parole da una stringa

Estrarre dal testo originale le prime sei parole di lunghezza maggiore o uguale a sei.
Inserire le parole in un array di stringhe. Tutte la parole dovranno avere lunghezza sei. Le parole di lunghezza maggiore saranno troncate.
Adesso posto il codice scritto da me che però quanto eseguo il programma non stampa a video niente.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#define dim 501

char str[dim]="DOMANI MATTINA VADO A COMPRARE IL PANE";

char vet[300][300];

char ris[dim];

main()
{
    int j,l=0,k=0,m,parole=0;
    
    for(j=0;j<strlen(str);j++){
       vet[k][l]=str[j];
       l++;
       if(str[j]==' '){
            vet[k][l]='0';
            k++;
            l=0;
        }
    }
    
    l=0;
    
    for(j=0;j<k;j++){
        while(parole<6){
            if(vet[k][5]<65||vet[k][5]>90)
                k++;
            else
              while(l!='0'){
                ris[j]=vet[k][l];
                l++;
                j++;
            }
            ris[j]='0';
           }
      }
    
    
        
    
        for(m=0;m<k;m++)
            printf("%s\n",vet[m]);

        printf("\n\n");
        
        printf("%s\n",ris);
       

system("PAUSE");
}

3 Risposte

  • Re: [c] estrazione parole da una stringa

    Prova così...
    #include <stdio.h>
    #include <string.h>
    #define dim 501
    char str[dim]="DOMANI MATTINA VADO A COMPRARE IL PANE";
    char vet[dim][6];
    
    main(){
    	 int i,c=0,j,parola=0;
    	 char ch;
        for (i=0;i<strlen(str);i++){
    			if (str[i]!=' ')
    				c++;
    			else
    				c=0;
    			if (c==6){
    				for (j=0;j<6;j++)
    					vet[parola][j]=str[i-5+j];
    				parola++;
    			}
    	 }
    	 getchar();
    }
  • Re: [c] estrazione parole da una stringa

    Non funziona, quando compilo ed eseguo il programma non mi esce niente
  • Re: [c] estrazione parole da una stringa

Devi accedere o registrarti per scrivere nel forum
3 risposte