PDA

View Full Version : [c++] confrontare due array di puntatori


mistergks
29-11-2012, 17:17
Ho due array di puntatori a char
Char *a[2]={"ciao","casa"};
char *b[2]={"casa","cane"};

Voglio verificare se i due array hanno una parola in comune..(cioe casa in questo caso).

Perche non posso fare cosi?:

Bool verifica(char *a[], char *b[]){
for(int i=0; i<2; i++){
for(int k=0; k<2; k++){
if(a[i] == b[k])
return true;
}
}
Return false;
}

!fazz
29-11-2012, 19:06
Ho due array di puntatori a char
Char *a[2]={"ciao","casa"};
char *b[2]={"casa","cane"};

Voglio verificare se i due array hanno una parola in comune..(cioe casa in questo caso).

Perche non posso fare cosi?:

Bool verifica(char *a[], char *b[]){
for(int i=0; i<2; i++){
for(int k=0; k<2; k++){
if(a[i] == b[k])
return true;
}
}
Return false;
}


forse perchè hai dei puntatori che giustamente non contengono il dato ma bensì l'indirizzo della cella di memoria in cui è memorizzato tale dato (in questo caso il primo carattere della stringa) ?

occhio ad usare i puntatori, è facile sbagliare e non solo alle prime volte che si usano :D

mistergks
30-11-2012, 12:32
forse perchè hai dei puntatori che giustamente non contengono il dato ma bensì l'indirizzo della cella di memoria in cui è memorizzato tale dato (in questo caso il primo carattere della stringa) ?

occhio ad usare i puntatori, è facile sbagliare e non solo alle prime volte che si usano :D

ops è vero! ma con la funzione strcmp(s1,s2) verificando che sia uguale a 0 posso

!fazz
30-11-2012, 12:39
ops è vero! ma con la funzione strcmp(s1,s2) verificando che sia uguale a 0 posso

perchè strcmp accetta in input due puntatori (tutti i vettori e quindi anche le stringhe sono gestite a puntatori dal c++) e dopo se li smazza lei

int strcmp ( const char * str1, const char * str2 );

Hardware Upgrade Forum Database Error
Database Error Database error
The Hardware Upgrade Forum database has encountered a problem.

Please try the following:
  • Load the page again by clicking the Refresh button in your web browser.
  • Open the www.hwupgrade.it home page, then try to open another page.
  • Click the Back button to try another link.
The www.hwupgrade.it forum technical staff have been notified of the error, though you may contact them if the problem persists.
 
We apologise for any inconvenience.