Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] Array di stringhe

    codice:
    	while((e=fgetc(ptrdel))>0) {
    
    		if((char)e=='\n') {
    
    			control[i]='\0';
    
    			if((strcmp(control,del)) !=0) {
    
    				printf("\nNon ho trovato l'occorrenza, memorizzo\n");
    
    				mat[k] = control;
    
    				i=0;
    
    				k++;
    
    			}
    
    			if((strcmp(control,del)) == 0) {
    
    				printf("\nTrovata occorrenza, non memorizzo\n");
    
    				i=0;
    			}
    
    		}
    
    		if(e!=10) {
    
    		control[i]=(char)e;
    
    		i++;
    
    		}
    
    	}
    
    	fclose(ptrdel);
    
    	printf("mat[0]=%s\n",mat[0]);
    
    	printf("mat[1]=%s\n",mat[1]);
    
    	printf("mat[2]=%s\n",mat[2]);
    
    	ptrdel = fopen("results.txt","w+");
    
    	for(x=0;x<n-1;x++) {
    
    		fprintf(ptrdel,"%s",mat[x]);
    		fprintf(ptrdel,"%c",'\n');
    	}
    
    fclose(ptrdel);
    }
    Sapreste dirmi cosa fa in modo che mat[0] sia uguale a mat[1] dopo la lettura di tutto il file?
    mat è un array di stringhe su cui voglio salvare ogni stringa che ho letto da file di testo e che comparata con un'altra (ovvero control) sia diversa, altrimenti proseguo senza memorizzarla. Dal file di testo capisco che una stringa è finita dal carattere '\n'. Scrivo su control solo se il carattere tornato non è la fine del file o il carattere speciale "line feed" che indica la fine di una riga.
    Grazie, è da parecchio che ci smanetto

  2. #2
    Se la variabile control è un array, come fai ad usarla (come hai fatto in alcuni punti) come se fosse una variabile semplice?

    Inoltre, se vai a scrivere più linee nel file devi modificare la funzione fopen.
    Devi scrivere:

    codice:
    ptrdel = fopen("results.txt","a");  // viene scritto in coda

  3. #3
    Ho risolto: facevo una minchiata concettuale:

    codice:
    mat[k] = control;
    invece io volevo copiare la stringa ovvero:

    codice:
     strcpy(mat[k],control);

    Grazie comunque

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.