[c] estrazione parole da una stringa

di Anonimizzato12476 il
3 risposte
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

  • 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();
    }
  • Non funziona, quando compilo ed eseguo il programma non mi esce niente
Devi accedere o registrarti per scrivere nel forum
3 risposte