Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    50

    [c] lunghezza massima parola string

    Sviluppare una function C che, data come parametro di input una stringa che rappresenta
    un testo in italiano, determina e restituisce come parametri di output la parola di lunghezza
    massima contenuta nel testo e la sua lunghezza. Nel testo le parole sono separate da un
    unico spazio.
    codice:
    #include <stdio.h>
    #include <string.h>
    void conta_caratteri(char *testo,int *n_caratteri);
    int main()
    {char testo[100];
    int n_caratteri,i;
     printf("inserisci testo:\n");
     gets(testo);
     conta_caratteri(testo,&n_caratteri);
     printf("la lunghezza massima:%d",n_caratteri);
     printf("la parola di lunghezza massima:%s",testo[n_caratteri]);
    system("pause");
      return 0;
    }
    void conta_caratteri(char *testo,int *n_caratteri)
    {
         int i,in_parola;
         i=0;
         while(testo[i]!='\0')
         {
                              (*n_caratteri)++;
                              if(testo[i]==' ' || testo[i]=='\n' || testo[i]=='\t')
                              in_parola=0;
                              else if(in_parola==0)
                              in_parola=1;
                              if(testo[i]>testo[*n_caratteri])
                              { *n_caratteri=i;
                              testo[*n_caratteri]=testo[i];
                              }
                              i++;
                              }
                              }
    perchè mi va in loop quando lo eseguo...
    codice:
    code

  2. #2
    Prova con strtok:


    codice:
    char * compute( char *text )
    {
    	char *ptr = strtok( text, " \n\t,.;:!\"?" );
    	char *str = ptr;
    
    	while( ptr != NULL )
    	{
    		str = strlen(ptr) > strlen(str) ? ptr : str;
    		ptr = strtok( NULL, " \n\t,.;:!\"?" );
    	}
    
    	return str;
    }
    Fracty - The Fractal Generator



    If you cannot choose a concise name that expresses what the method does, it is possible that your method is attempting to perform too many diverse tasks.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    37
    codice:
     printf("la parola di lunghezza massima:%s",testo[n_caratteri]);
    testo e' un array,cosi stampi un solo carattere,devi eliminare "[n_caratteri]"

    queste linee non hanno tanto senso,devi collegarle al resto del codice
    codice:
    if(testo[i]==' ' || testo[i]=='\n' || testo[i]=='\t')                           
             in_parola=0;
             else if(in_parola==0)
             in_parola=1;
    poi ti serve un array di appoggio all'array "testo" dove inserire la parola piu lunga
    come ha fatto nell'esempio GliderKite
    per finire controlla il puntatore "*n_caratteri" mi semra non punti a niente
    ciao.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.