codice:
int main (int argc, char *argv[]) {


    FILE *a=fopen("ritardi.txt","r");
    FILE *b=fopen("quartinescelte.txt","w");
    char buf[1024];
    
    while( fgets(buf,1024,a)) if(strstr(buf," colpirimanenti: 0") != NULL  || strstr(buf," colpirimanenti: 1 ") != NULL || strstr(buf," colpirimanenti: 2 ") != NULL  || strstr(buf," colpirimanenti: 3 ") != NULL )     fputs(buf,b);
                    
                                       
                    getchar();
fclose(a);fclose(b);
     return 0;               
    }
il controllo funziona solo per colpirimanenti: 0
Per gli altri lo spazio dopo il valore non viene rilevato... nelle righe del tipo:

presenze:81°***combinazione:14,15,30,38***rs: 248 ra: 88 colpirimanenti: 160
presenze:70°***combinazione:14,15,30,39***rs: 222 ra: 222 colpirimanenti: 2
presenze:87°***combinazione:14,15,30,40***rs: 183 ra: 180 colpirimanenti: 3

e quindi ad esempio la riga

presenze:87°***combinazione:14,15,30,40***rs: 183 ra: 180 colpirimanenti: 3

non viene considerata...

Ho provato a mettere caratteri di spazio o tabulatura tipo: \n\t\s

codice:
  while( fgets(buf,1024,a)) if(strstr(buf," colpirimanenti: 0") != NULL  || strstr(buf," colpirimanenti: 1\n ") != NULL || strstr(buf," colpirimanenti: 2\n ") != NULL  || strstr(buf," colpirimanenti: 3\n ") != NULL )     fputs(buf,b);
ma nulla...

se invece rimuovo lo spazio dopo il valore colpirimanenti cercato... il controllo avviene ma non è ottimale... in quanto vengono considerati uguali... ad esempio... sia la riga

presenze:87°***combinazione:14,15,30,40***rs: 183 ra: 180 colpirimanenti: 3 (ricercata)

che la riga...

presenze:74°***combinazione:14,15,82,2***rs: 415 ra: 87 colpirimanenti: 328 (da non considerare)

in quanto il programma rileva in entrambi il valore 3...

Grazie per il vostro eventuale aiuto