Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [C] problema di ripetizioni di printf

    Vi posto subito il codice per rendere l'idea:

    codice:
       if (strstr (s, par3) != NULL)
                       {
                       printf ("%s\n", s);
                       y++;
                       }
        if (strstr (s, par3) == NULL)
                       {
                       x++;
                       } 
                       
        if (strstr (s, par4) != NULL)
                       {
                       printf ("%s\n", s);
                       y++;
                       }
        if (strstr (s, par4) == NULL)
                       {
                       x++;
                       }
    Come posso verificare se la stringa sparata a video S nell caso del par4 sia uguale a quella del par3 e APPUNTO SE SONO UGUALI NON FARLA STAMPARE?

    ho provato anche in questo modo:

    codice:
       if (strstr (s, par3) || strstr(s, par4) != NULL)
                       {
                       printf ("%s\n", s);
                       y++;
                       }
                 if (strstr (s, par3) || strstr(s, par4) == NULL)
                       {
                       x++;
                       }
    ma così mi da risultati sbagliati non so perchè

    Attendo un vostro parere

    CIAO A TUTTI

  2. #2
    Per verificare se due stringhe sono uguali usa la funzione
    strcmp()
    codice:
    if (!strcmp(str1, str2)) {
        // Non Stampo perche' sono uguali
    }
    PoWered by:
    Gentoo 1.5.3 - Kernel 2.6.7
    Debian Sid - Kernel 2.6.7 - Bash 3.0
    Slackware current - Kernel 2.6.7

  3. #3
    Si ci avevo pensato anche io,

    ma la mia stringa è sempre la stringa S

    Se in S e contenuto par3 stampo S

    Se in S e contenuto par4 stampo S (ma se ho gia stampato S non lo stampo più)



    CIAO GRAZIE

  4. #4
    usare la clausola "else"?

  5. #5
    Originariamente inviato da visualnic
    Si ci avevo pensato anche io,

    ma la mia stringa è sempre la stringa S

    Se in S e contenuto par3 stampo S

    Se in S e contenuto par4 stampo S (ma se ho gia stampato S non lo stampo più)



    CIAO GRAZIE
    prova con questo codice che ti ho scritto ...
    codice:
    // Se in S e contenuto par3 stampo S
    int i=0;
    if (strstr (s, par3) != NULL){
     printf("%s\n",s);
     i++;
     }
     
    // Se in S e contenuto par4 stampo S 
     if (strstr (s, par4) != NULL){
        
          //(ma se ho gia stampato S non lo stampo più)
              if ( i != 0 )  printf("%s\n",s);
     }
    nell'ultima parte(...ma se ho gia stampato S non lo stampo più...) che intendi??
    controllare se è stato già stampato s almeno una volta? (come ti ho implementato io cioè)

    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  6. #6
    Originariamente inviato da andrea_NET-_DSL
    prova con questo codice che ti ho scritto ...
    codice:
    // Se in S e contenuto par3 stampo S
    int i=0;
    if (strstr (s, par3) != NULL){
     printf("%s\n",s);
     i++;
     }
     
    // Se in S e contenuto par4 stampo S 
     if (strstr (s, par4) != NULL){
        
          //(ma se ho gia stampato S non lo stampo più)
              if ( i != 0 )  printf("%s\n",s);
     }
    nell'ultima parte(...ma se ho gia stampato S non lo stampo più...) che intendi??
    controllare se è stato già stampato s almeno una volta? (come ti ho implementato io cioè)

    nell'indecisione di cioè che vuoi ti scrivo in entrambi i modi
    codice:
    /* cosi' controlla  se le due stringhe s stampate le due volte sono uguali : se lo sono la stampa una sola volta altrimenti entrambe */
    
    // Se in S e contenuto par3 stampo S
    int i=0;
    if (strstr (s, par3) != NULL){
     printf("%s\n",s);
     i++;
     }
    
    /* mi salvo la stringa s per poi confrontarla usando la funzione  char *  strcpy ( char * dest, const char * src ); contenuta in string.h */
    
    char *app; //stringa di appoggio per la verifica...
    strcpy(app,s);
     
    // Se in S e contenuto par4 stampo S 
     if (strstr (s, par4) != NULL){
        
          /*(ma se ho gia stampato S non lo stampo più e questa volta verifico che nn siano uguali anche) */
              if ( (i != 0)  &&  (strcmp(app,s) != 0 )  printf("%s\n",s);
     }
    bye
    :gren:
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  7. #7
    Originariamente inviato da kNemo
    Per verificare se due stringhe sono uguali usa la funzione
    strcmp()
    codice:
    if (!strcmp(str1, str2)) {
        // Non Stampo perche' sono uguali
    }
    la funzione strcmp ritorna 0 se le due STRINGHE PASSATA COME ARGOMENTO SONO UGUALI .......che significa la sintassi if (!strcp...)??

    :gren:
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  8. #8
    if (strstr (s, par3) != NULL)
    {
    printf ("%s\n", s);
    y++;
    flag=par3; <--------codice da inserire
    }
    if (strstr (s, par3) == NULL)
    {
    x++;
    }

    if (strstr (s, par4) != NULL)
    if (s != flag) { printf ("%s\n", s); y++; } <---codice da inserirre

    if (strstr (s, par4) == NULL)
    {
    x++;
    }
    LanMaster

  9. #9
    Originariamente inviato da beppenike
    if (strstr (s, par3) != NULL)
    {
    printf ("%s\n", s);
    y++;
    flag=par3; <--------codice da inserire
    }
    if (strstr (s, par3) == NULL)
    {
    x++;
    }

    if (strstr (s, par4) != NULL)
    if (s != flag) { printf ("%s\n", s); y++; } <---codice da inserirre

    if (strstr (s, par4) == NULL)
    {
    x++;
    }
    guarda l'assegnazone che ti ho evidenziato... non puoi salvare una stringa(par3) dentro un altra(flag) semplicmente con un " = " :devi usare un'apposita funzione(o cmq creata da te con un for ad es che copia carattere x carattere fino a \0) ,come ho fatto io sopra!

    Ciao e Buona Domenica
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  10. #10
    asd, si hai ragione, mi son fatto prendere dalla foga d rispondere
    LanMaster

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