Salve a tutti, ho qualche difficoltà con questo esercio il quale chiede:
Definire una funzione che prende in input un arraymonodimensionale di caratteri e restituisce il puntatore alla cellache contiene la prima vocale dello array.
Detto ciò, il codice che ne segue è:
#include <iostream>
using namespace std;
char *func (char a[], int n)
{
char *p= nullptr;
for (int i=0; i<n; i++)
{
if (a[i]=='a'||a[i]=='o'||a[i]=='i'||a[i]=='e'||a[i]=='u')
{
p=&a;
break;
}else
{
continue;
}
}
return p;
}
int main()
{
char v[]={'f','e','r','y','\0'};
cout << "Il valore di func e:"<< func(v,5)<<endl;
//" "<<"(verifica)il valore della cella con la prima lettera è:"<< (&v)+2 <<endl;
return 0;
}
Il problema nel codice è (come da titolo) che non mi preleva l'indirizzo della singola cella (in questo caso la 'e') bensì mi stampa tutto l'array ossi 'fery'.
Qualcuno saprebbe dirmi più nel dettaglio dove sbaglio?