Visualizzazione dei risultati da 1 a 7 su 7

Visualizzazione discussione

  1. #1

    [C] Funzione che conta le parole distinte di una stringa

    Salve ragazzi, ho un problema con questa funzione che dovrebbe oltre a contare le parole distinte di una stringa anche stamparle. Premetto che sono alle prime armi e non riesco proprio a capire dov'è l'errore.

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define DIM 100
    
    
    
    
    int contaParoleDistinte(char[], char*[]);
    
    
    int main(int argc, char *argv[]) {
    	
    	char s[DIM], *token[DIM];
    	int i;
    	
    	printf("Inserire una stringa: (max %d caratteri) ", DIM);
    	gets(s);
    	
    	printf("La stringa e\' costituita da %d parole distinte\n", contaParoleDistinte(s, token));
    	printf("Le parole distinte individuate sono:\n");
    	for(i=0; i<contaParoleDistinte(s, token); i++){
    		puts(token[i]);
    	}
    		
    	system("pause");
    	return 0;
    }
    
    
    int contaParoleDistinte(char s[], char *token[]){
    	char *ptr;
    	int cont=0, i, trovato;
    	
    	ptr=strtok(s, " ");
    	token[cont]=malloc((strlen(ptr)+1)*sizeof(char));
    	strcpy(token[cont],ptr);
    	cont++;
    	
    	while(ptr!=NULL){
    				
    		for(i=0; i<cont; i++){
    			if(strcmp(token[i], ptr)==0)	{
    				trovato=1;
    				break;
    			}
    			else trovato=0;}
    		if(trovato=0){
    			token[cont]=malloc((strlen(ptr)+1)*sizeof(char));
    			strcpy(token[cont],ptr);
    			cont++;	}
    			
    		ptr=strtok(NULL, " ");	
    	}
    	return cont;	
    }
    Ultima modifica di MItaly; 30-05-2016 a 23:59

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 © 2025 vBulletin Solutions, Inc. All rights reserved.