Oppure

Loading
12/12/08 21:51
feddur
void colora(char string[300])
{
int i = 1;
if(string[ i] == "f";)
{
i++;
printf("\n%c\n", string[ i]);
}
}


mi da un errore nel rigo della if, perchè?

o meglio così?

void colora(char string[300])
{
int i = 1;
char par = 'f';
while (strcmp(string[ i],par) != 0)
{
i++;
printf("\n%c\n", string[ i]);
}
}

edit: ho trovato l'errore.. si tratta della parametro in entrata.
forse se spiego cosa vorrei fare è più facile per tutti.
Data una stringa, vorrei prendere una sottostringa compresa tra due caratteri ( e ).
come fare?
grazie
Ultima modifica effettuata da feddur 12/12/08 22:42
aaa
13/12/08 16:40
mc
È sbagliato concettualmente ...
Tu confronti "f", che è una costante stringa con string[i] che è un carattere.
Così è giusto:
if(string[i] == 'f')
/*blablabla*/


Ok ?
Ultima modifica effettuata da mc 13/12/08 16:41
aaa
13/12/08 16:45
mc
Postato originariamente da feddur:
edit: ho trovato l'errore.. si tratta della parametro in entrata.
forse se spiego cosa vorrei fare è più facile per tutti.
Data una stringa, vorrei prendere una sottostringa compresa tra due caratteri ( e ).
come fare?
grazie


Per estrarre una stringa compresa tra ( e ); semplicemente:
- Analizzi ogni carattere.
- Se trovi ( allochi lo spazio per una sottostringa.
- Inserisci caratteri nella sottostringa, fino a quando non trovi )
- Restituisci la sottostringa.
aaa
13/12/08 19:32
feddur
bene.. allora scorro con un ciclo for carattere per carattere nella stringa da cercare.
ma come faccio a confrontare: stringa[j] con "(" ?
grazie.
aaa
13/12/08 19:34
mc
if(string[j] == '(')
aaa
14/12/08 11:09
munkaka
volendo puoi mettere la condizione nel ciclo for
cosi:

for(i=0;string[i]!='(';i++)
{
//blocco vuoto
}
par=string[i+1];
Ultima modifica effettuata da munkaka 14/12/08 11:11
aaa
14/12/08 18:52
feddur
Risolto! :D
        while(stringa[i ] != 'Risolto! :D

        while(stringa[i ] != '{parsed_message}') 
        {
         i++;
             if(stringa[i ] == '[' )
              {
               while(stringa[i] != ']')
               {                       
               i++;        
               printf("%c",stringa[i ]); 
               }
              }
        }
') { i++; if(stringa[i ] == '[' ) { while(stringa[i] != ']') { i++; printf("%c",stringa[i ]); } } }
Ultima modifica effettuata da feddur 14/12/08 19:38
aaa
14/12/08 23:35
feddur
credevo di aver risolto.. invece no.
la funzione l'ho un po' modificata..
void color(char string[])
{
    int i = 0;
    int k = 0;
    int cont = 0;
    char bus[30 ];
    char vecchio[30 ];    
    
               while(string[i] != ')')
               {                       
               i++;
               cont++;
               bus[k ] = string[i ];        
               k++;
                   for(k=0; k<cont; k++)
                    {
                      if(string[k ] == bus[k])printf("Uguale\n");
                      else printf("Diverso\n");
                    }
               }
   
}


lavorando ancora vorrei che questa funzione, applicata su stringhe sempre diverse, riuscisse a capire se i valori prima di ' )' sono uguali a quelli delle altre stringhe precedenti.
esempio:

123456) nome
123455) nome
123456) nome
123456) nome
123455) nome

date queste stringhe una alla volta vorrei che la funzione compari tutte le cifre prima di ) e quelle uguali dovrebbe essere colorate di colore uguale.
Sono arrivato fino ad un certo punto ma non riesco ad andare avanti.. ne uscirò pazzo..
aiutatemi. grazie!
aaa