Con questo codice estrapolo solo le righe del filedaestrapolare.txt con presenze=1° o presenze=0°

codice:

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
#include <sstream>
#include <iomanip>

#include<stdio.h>
#include<string.h>


using namespace std;

string intToString(int value) {
    stringstream ss;
    ss << value;
    return ss.str();
}

string floatToString(float value) {
    stringstream ss;
    ss << value;
    return ss.str();
}


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


    FILE *a=fopen("filedaestrapolare.txt","r");
    FILE *b=fopen("estrapolazione.txt","w");
    char buf[1024];
    
    while( fgets(buf,1024,a)) if(strstr(buf,"presenze:0°") || strstr(buf,"presenze:1°")   )     fputs(buf,b);
                    
                                       
                    getchar();
fclose(a);fclose(b);
     return 0;               
    }
Ottenendo ad esempio delle righe del tipo:

presenze:1°***combinazione:25***rs: 408 ra: 91 colpirimanenti: 317

io vorrei ottimizzare il tutto in modo da avere solo...

25

ovvero sia dovrei estrapolare solo il pezzo della stringa compreso tra "combinazione:" e *

Come potrei modificare il codice soprastante per ottenere ciò?

Grazie infinite a chi me lo dis!