Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    348

    [C] Confronto stringhe data

    ciao!!


    dovrei confrontare due stringhe contenti delle date che sono salvate in questo modo: gg/mm/aaaa


    quindi dovrei confrontarle e sapere se la data A viene prima della data B!

    ho provato a fare con strcmp(dataA ,dataB) pero mi confronta solo i giorni
    cioe' se A 27/06/2007 e B 29/09/2007 mi ritorna -2!
    potrei dividere le stringhe in tre parti gg mesi e anno pero non so come dividerle in sottostringhe!


    ciao grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Nel confronto tra date, come e' intuibile, prima si valuta l'anno, poi il mese e alla fine il giorno. Dato che il formato e' gg/mm/aaaa e la strcmp valuta la stringa da sinistra verso destra, viene esaminato prima il giorno, poi il mese e alla fine l'anno ...

    Devi esaminare le sottostringhe.

  3. #3
    prova ad usaro atoi che converte un carattere in un numero . . .
    Se una funzione riceve come argomento un puntatore di puntatore di puntatore quando la invochi ricordati che puo ricevere o un puntatore di puntatore di puntatore o l'indirizzo di un puntatore di puntatore

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    348
    grazie per la funzione atoi ma non vedo come usarla il problema di trovare sottostringhe mi rimane oppure tu la "vedi" in un altro modo senza usare sottostringhe


    ma scusate , ma per prendere n caratteri di una stringa per poi copiarli in un altra?
    c'e' qualche funzione oppure devo crearla ??

    cioe una funzione che data una stringa e gli estremi inferiore e superiore mi ritorni una sottostringa!
    potrei anche crearla pero' sarebbe piu carino se ci fosse gia'

  5. #5
    tu devi fare un confronto fra due stringhe per mettere in ordine le date?

    se e' questo ti basta scorrere le due stringhe con un ciclo convertendo tutti i numeri . . . e poi fare i confronti in base a giorno mese e anno . . . .
    Se una funzione riceve come argomento un puntatore di puntatore di puntatore quando la invochi ricordati che puo ricevere o un puntatore di puntatore di puntatore o l'indirizzo di un puntatore di puntatore

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    348
    in pratica mi serve per confrontare due date di cui una e' la "principale" e tutte le altre la confrontano se sono prima di questa data "principale" fanno una determinata cosa altrimenti un alltra!


    ho risolto il problema della sottostringa in questo modo:
    codice:
    char * funzione( char * stringa   , int i  ,  int f ){
      char * g = malloc(f - i);
      int j , k=0;
      for(j=i ;  j <= f ; j++ ){
            g[k] = stringa[j];
            k ++;
    
      }
      return g;
    }
    
    
    int main(){
            char *data1 ="29/07/2007";
            char *data2 = "28/06/2007";
            int i;
            char *  gg ;
            gg = funzione (data1 , 0 , 1);
            printf("%s" , gg );
    }

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    348
    ah dimentiva grazie!!
    infine ho usato anche atoi !

  8. #8
    scusami ma ho avuto problemi. . . .

    avevo cmq pensato ad una funzione che data solo la data in input restituisca 1 se viene prima e 0 se viene dopo (scegli tu dove mettere il caso in cui la data passata sia uguale a quella da confrontare)


    cmq se hai risolto .......
    Se una funzione riceve come argomento un puntatore di puntatore di puntatore quando la invochi ricordati che puo ricevere o un puntatore di puntatore di puntatore o l'indirizzo di un puntatore di puntatore

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Scusa. ma molto piu' semplicemente, se la stringa ha comunque *lunghezza fissa*, le tre sottostringhe partono da

    pData

    pData+3

    pData+6

    ... e applicando la atoi, ottieni facilmente i tre valori.

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    348
    hai (per la terza volta)ragione!!non avevo pensato ad una soluzione cosi!!grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.