Datas em C

Olá eu estou tendo um probleminha aq pra desenrolar um problema que é o seguinte:
Eu preciso dizer qnts dias existem entre duas datas q serão inseridas pelo usuario.

Tipo: 18/07/2010 - 25/08/2010 => Retornar: 8 dias.

Eu andei dando uma pesquisada sobre algumas bibliotecas ou funções que me ajudariam como: time_t e difftime, mas não consegui entender.

Agradeço desde já.

Sei, é que você não fez todas as transformações intermediárias.

Você primeiramente precisa converter sua string em um tempo (usualmente um struct tm). Você pode usar sscanf para isso.
A seguir, você converte essa struct tm em um time_t, usando normalmente localtime.
Depois, você pega os time_t do tempo inicial e final, e faz a diferença. Pode subtrair os valores mesmo, não precisa de difftime (que simplesmente pega a diferença de dois time_t e transforma em um double, fazendo um simples cast).
Isso vai dar um valor em segundos. Para transformar em dias, é só lembrar que 1 dia = 86400 segundos.

Obrigado pelas dicas @entanglement

Mas é q sou iniciante em C então não entendi muito bem como a struct tm e o sscanf.

Agradeço se vc puder dar um exemplo em um programa.

Ah, é pra já. (Esqueci que era para usar mktime, não localtime. Olhe sempre a documentação! )

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

time_t converter (const char* ddMMaaaa) {
    struct tm t;
    /* zerando todos os campos */
    memset (&t, 0, sizeof(t));
    /* Veja: http://www.cplusplus.com/reference/clibrary/ctime/tm/ */
    sscanf (ddMMaaaa, "%d/%d/%d", &t.tm_mday, &t.tm_mon, &t.tm_year);
    /* Precisamos fazer uma correcao - os meses começam por 0 e os anos por 1900. */
    t.tm_mon--;
    t.tm_year -= 1900;
    /* Agora temos de converter para time_t */
    return mktime (&t);
}

int main (int argc, char *argv[]) {
    char *de = argv[1];
    char *ate = argv[2];
    time_t t1 = converter (de);
    time_t t2 = converter (ate);
    int segundos = t2 - t1;
    int dias = segundos / 86400;
    printf ("A diferenca entre %s e %s eh de %d dias\n", 
        de, ate, dias);
}

Fica a seu cargo descobrir como é que se compila e roda o programa.

A propósito, a diferença entre 25/08/2010 e 18/08/2010 é de 7 dias, não 8. Se quiser incluir mais um dia, esteja à vontade.

Vlw pela ajuda to vendo aq como faço pra rodar =]

Mas ja entendi o raciocínio q tenho q usar.