A biblioteca padrão do C possui ótimas funções para leitura de dados, porém nem todo mundo sabe que a família *scanf (scanf, fscanf, etc) suporta até (uma versão simplificada) de expressões regulares.
Um exemplo:
Suponha que você tenha que ler uma entrada com a seguinte formatação:
Time1 vs Time2 : 3×2
Time2 vs Time3 : 10×5
Time1 vs Time2 : 1×8
Time3 vs Time1 : 0×0
A tarefa é retirar somente os nomes e os gols de cada time.
Com o bom e velho scanf, isso pode ser feito em uma só linha. Exemplo completo (escreva a entrada em um arquivo, e execute o programa redirecionando o arquivo para a entrada padrão (./programa < arquivo).
Código: Pastebin