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:
Se invece devi memorizzare una stringa, devi allocare la memoria per un insieme di caratteri, quindi un vettore.codice:char ch; ch = 'A';
Per passare quella stringa alla funzione ne devi passare il puntatore.
Esempio:
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.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; }
Nel tuo codice:
nell'istruzione "s++", NON incrementi il valore del carattere puntato da s, ma del suo puntatore!!codice:void funzione(char *s, char c) { while(*s) if (*s==c) return 1 else s++; return 0; }
Per ulteriori info chiedi sulla discussione sui puntatori![]()

Rispondi quotando