Jest to związane z sscanf usage - how to verify a completed scan vs an aborted scan, ale jest to przypadek nieobsługiwany przez to pytanie.dopasowanie końcowego tekstu w sscanf?
char entry[] = "V2X_3_accepted";
int d1,d2,ret1,ret2;
ret1 = sscanf(entry,"V2X_%d_expected",&d1);
ret2 = sscanf(entry,"V2X_%d_received",&d2);
Oczekiwany wynik: ret1==0; ret2==0; d1, d2
niezdefiniowany.
Rzeczywisty wynik: ret1==1; ret2==1; d1=d2=3
.
Użycie na końcu końcówki nie pomoże, ponieważ łańcuchy dopasowania mają jednakową długość. Czy istnieje jakiś zgrabny trik, który pasowałby do końcowego tekstu bez wykonywania kolejnego strncmp lub podobnego?
@ user3121023: Nice! Napisz to jako odpowiedź. –