Forse intendeva la differenza tra char come carattere e char * come stringa!
Se dichiari una variabile come char occupi la memoria per solo 1 byte:
codice:
char ch;
ch = 'A';
Se invece devi memorizzare una stringa, devi allocare la memoria per un insieme di caratteri, quindi un vettore.
Per passare quella stringa alla funzione ne devi passare il puntatore.
Esempio:
codice:
void f(char *str);
void main() {
// Dichiaro un array di caratteri per la stringa
char s[30];
// Chiamo la funzione
f(s);
}
void f (char *str) {
cout << str;
}
Noterai che per trattare le stringhe come array di caratteri hai molte limitazioni (come l'uso dello spazio in memoria e l'assegnamento tramite operatore =), quindi con il C++ è stata creata la classe string.
Nel tuo codice:
codice:
void funzione(char *s, char c)
{
while(*s)
if (*s==c) return 1
else s++;
return 0;
}
nell'istruzione "s++", NON incrementi il valore del carattere puntato da s, ma del suo puntatore!!
Per ulteriori info chiedi sulla discussione sui puntatori