Buonasera a tutti, ho un problema con un programma in C++ in cui si utilizza una funzione che restituisce un puntatore.
il codice è questo :
#include <iostream>
using namespace std;
char *get_substr(char *sub, char *str){
char *p,*p2,*start;
for(int t=0;str[t];t++){
p=&str[t];
start =p;
p2=sub;
while(*p2 && *p2==*p){
p++;
p2++;
}
if(!*p2)
return start;
}
return 0;
}
int main() {
char *substr;
//get_substr funzione di ricerca sottostringa e restituisce un puntatore alla prima lettera cercata, nel caso in cui ci sia
substr= get_substr("tre","uno due tre quattro");
cout << "sottostringa trovata : " << substr;
return 0;
}
1. Quando passo "tre" e "uno de tre quattro nei parametri", i due puntatori della funzione puntano automaticamente alla prima lettera di ciascuna stringa, come mai?
2. Da parte del compilatore le stringhe passate sono viste come tipo string o come tipo char? e come mai con un tipo string posso creare una stringa che sta in un'unica cella di memoria mentre con un tipo char devo per forza creare un array di caratteri?
Grazie mille in anticipo!