CStringに書式指定(%-04dとか%sとか)を含む文字列が含まれている場合、
その書式指定の部分だけを抽出した部分文字列を得る良い方法ってありますか?

自分でも、'%'が出てこないかFindして出てきた位置の次に最初に'd'や's'が出てくる位置を
それぞれ見つけてきて、その位置の間の長さが最も短くなる部分文字列を取ればいい、
というアルゴリズムは思いつきますが、書式指定子('d'や's')をきちんと網羅できてないと
バグの原因になるのではないかと思い、もしかすると同じコードを今後も流用する可能性が
あることを考えると、より安全確実に実施できる方法が関数として既に用意されているなら
それを利用したいと考えています。

何か良い方法があればご教授ください。