Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 27
  1. #11
    scusatemi un' ultima volta, questa e' ANSI e corretta ???

    codice:
    int conta_occorrenze(
    	char *stringa,
    	char *cerca
    )
    {
    	int lunghezza_cerca = strlen(cerca);
    	int occorrenze = 0;
    	while((stringa = strstr(stringa,cerca)))
    	{
    		stringa += lunghezza_cerca;
    		occorrenze++;
    	}
    	return occorrenze;	
    }
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  2. #12
    Originariamente inviato da andr3a
    posso sbavarti ?


    italianizzando questa va bene ?
    codice:
    int conta_occorrenze(
    	char *stringa,
    	char *cerca
    )
    {
    	int lunghezza_cerca = strlen(cerca);
    	int occorrenze = 0;
    	while(stringa)
    	{
    		stringa = strstr(stringa,cerca);
    		if(stringa)
    		{
    			stringa += lunghezza_cerca;
    			occorrenze++;
    		}
    	}
    	return occorrenze;	
    }
    senza il != NULL che mi sa di ridondante :master:


    grazie
    assoluttisimamente NO !
    il !=NULL e' obbligatorio perche' non e' detto che null sia 0 potrebbe essere -1 come -1000 o 100
    inoltre il tuo prof potrebbe dire :
    "uaille vuole come parametro un espressione buleana, e tu caro il mio sborò gli dai in pasto un puntatore sperando che c te lo traduca per te, nonono 10 punti in meno!"

    per il resto mi sembra possa andare..
    se vuoi puoi aggiungere dei controlli sui parametri,soprattutto sul secondo, se gli passi null non so che succede..

  3. #13
    Originariamente inviato da andr3a
    scusatemi un' ultima volta, questa e' ANSI e corretta ???

    codice:
    int conta_occorrenze(
    	char *stringa,
    	char *cerca
    )
    {
    	int lunghezza_cerca = strlen(cerca);
    	int occorrenze = 0;
    	while((stringa = strstr(stringa,cerca)))
    	{
    		stringa += lunghezza_cerca;
    		occorrenze++;
    	}
    	return occorrenze;	
    }
    si ,dovrebbe, ma aggiungi il !=NULL

  4. #14
    Originariamente inviato da kentaromiura
    assoluttisimamente NO !
    il !=NULL e' obbligatorio perche' non e' detto che null sia 0 potrebbe essere -1 come -1000 o 100
    perdona la mia ignoranza ma ...

    una stringa non puo' essere ne 0 ne -1 ne -1000 , una stringa e' una stringa , punto.

    Quindi o e' stringa e il ciclo continua, oppure e' NULL e il NULL in C e' un' espressione buleana riconosciuta come false, non e' false ma e' la stessa cosa in un if o un while, tu che dici ?

    sto' solo chiedendo, non ho esperienza con ANSI C

    per il fatto di passare il null in teoria non dovrebbe essere possibile nel mio programma , visto che il main ha un bell'

    if(argv[1]) { ... }

    dove argv[1] e' quello che poi andro' a passare ... o no ? :master:

    codice:
    int conta_occorrenze(
    	char *stringa,
    	char *cerca
    )
    {
    	int lunghezza_cerca = strlen(cerca);
    	int occorrenze = 0;
    	while((stringa=strstr(stringa,cerca))!=NULL)
    	{
    		stringa += lunghezza_cerca;
    		occorrenze++;
    	}
    	return occorrenze;	
    }
    la accendiamo ?

    basterebbe che qualcuno la testasse su un Linux con -wall -ansi
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #15
    Originariamente inviato da andr3a
    perdona la mia ignoranza ma ...

    una stringa non puo' essere ne 0 ne -1 ne -1000 , una stringa e' una stringa , punto.
    si, ma in c non esistono le stringhe,tant'e' che sono vettori di char, c non e' fortemente tipizzato e chiunque puo' fare un
    #ifdef NULL
    #undef NULL
    #define NULL -1
    #endif
    te lo dico perche' in molte librerie null equivale a -1
    Quindi o e' stringa e il ciclo continua, oppure e' NULL e il NULL in C e' un' espressione buleana riconosciuta come false, non e' false ma e' la stessa cosa in un if o un while, tu che dici ?

    sto' solo chiedendo, non ho esperienza con ANSI C
    Tecnicamente finche' nessuno modifica NULL e' corretto, ma
    quest' ultima cosa non e' detta.
    per il fatto di passare il null in teoria non dovrebbe essere possibile nel mio programma , visto che il main ha un bell'

    if(argv[1]) { ... }

    dove argv[1] e' quello che poi andro' a passare ... o no ? :master:
    allora scrivi un bel commento dove indichi che non controlli la variabile perche' non potra' mai essere NULL,abbonda nella documentazione!
    codice:
    int conta_occorrenze(
    	char *stringa,
    	char *cerca
    )
    {
    	int lunghezza_cerca = strlen(cerca);
    	int occorrenze = 0;
    	while((stringa=strstr(stringa,cerca))!=NULL)
    	{
    		stringa += lunghezza_cerca;
    		occorrenze++;
    	}
    	return occorrenze;	
    }
    la accendiamo ?

    basterebbe che qualcuno la testasse su un Linux con -wall -ansi
    chiedi a daniele..

  6. #16
    Originariamente inviato da kentaromiura
    si, ma in c non esistono le stringhe,tant'e' che sono vettori di char, c non e' fortemente tipizzato e chiunque puo' fare un
    #ifdef NULL
    #undef NULL
    #define NULL -1
    #endif
    te lo dico perche' in molte librerie null equivale a -1
    ok, sono d'accordo con te ma questo non cambia che

    if("-1") sara' sempre true ... o no ???
    quindi
    if(NULL) => esce dal ciclo
    if(-1) => esce dal ciclo
    ma
    if("-1") dove -1 e' nella stringa => non esce da niente
    if("NULL") dove NULL e' nella stringa => non esce da niente, correggimi se sbaglio ...

    io comunque lo lascio, pero' non mi e' ancora chiara questa cosa, C non e' fortemente tipizzato eppure il char deve essere un char, non posso inviare un NULL o un -1 a quella funzione perche' vuole 2 stringhe , o meglio 2 vettori di char , non so se mi spiego ...


    poi alla fine pure

    if(argv[1]) e' un controllo fasullo se uno mi cambia il null con

    #ifdef NULL
    #undef NULL
    #define NULL 1

    perche' se argv[1] e' NULL perche' non l' ho passato, con la ridichiarazione mi va in true, giusto ?
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #17
    Originariamente inviato da andr3a
    ok, sono d'accordo con te ma questo non cambia che

    if("-1") sara' sempre true ... o no ???
    quindi
    if(NULL) => esce dal ciclo
    if(-1) => esce dal ciclo
    ma
    if("-1") dove -1 e' nella stringa => non esce da niente
    if("NULL") dove NULL e' nella stringa => non esce da niente, correggimi se sbaglio ...

    io comunque lo lascio, pero' non mi e' ancora chiara questa cosa, C non e' fortemente tipizzato eppure il char deve essere un char, non posso inviare un NULL o un -1 a quella funzione perche' vuole 2 stringhe , o meglio 2 vettori di char , non so se mi spiego ...


    poi alla fine pure

    if(argv[1]) e' un controllo fasullo se uno mi cambia il null con

    #ifdef NULL
    #undef NULL
    #define NULL 1

    perche' se argv[1] e' NULL perche' non l' ho passato, con la ridichiarazione mi va in true, giusto ?
    no, in c dovrebbe essere cosi:

    #define FALSE 0
    #define TRUE !FALSE
    se tu fai !(-1) fai il complemento a 2 e sarà diverso da 0..
    infatti 0 e' falso non zero e' vero.

  8. #18
    per concludere un

    if(argv[1])
    in entrata al main del programma e' affidabile o meno ? :master:
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  9. #19
    Originariamente inviato da andr3a
    per concludere un

    if(argv[1])
    in entrata al main del programma e' affidabile o meno ? :master:
    no, devi fare il controllo su argc!
    non avevo letto bene..
    argc conta il numero dei parametri da riga di comando
    se c'e' solo l'eseguibile e' =1
    con 1 parametro e' =2 con 2 parametri =3 con 1000 parametri =1001 ,

  10. #20
    Originariamente inviato da kentaromiura
    no, devi fare il controllo su argc!
    non avevo letto bene..
    argc conta il numero dei parametri da riga di comando
    se c'e' solo l'eseguibile e' =1
    con 1 parametro e' =2 con 2 parametri =3 con 1000 parametri =1001 ,
    ok, grazie mille .... ora dimmi una sola cosa ...

    non e' che hai linux e un indirizzo email per poter testare il programmino col Makefile ?


    grazie di tutto, anche se non hai linux

    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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 © 2026 vBulletin Solutions, Inc. All rights reserved.