Sto leggendo la 3a edizione di il linguaggio di programmazione C++ di Bjarne Stroustrup e sto tentando di completare tutti gli esercizi. Non sono sicuro di come affrontare l'esercizio 13 dalla sezione 6.6, quindi ho pensato di passare a Stack Overflow per alcune informazioni. Ecco la descrizione del problema:C++: come utilizzare il nuovo per trovare il valore di ritorno della funzione?
Scrivete una funzione gatto() che prende due argomenti stringa in stile C e restituisce una singola stringa che è la concatenazione degli argomenti. Utilizzare new per trovare il negozio per il risultato.
Ecco il mio codice finora, con i punti interrogativi in cui io non sono sicuro di cosa fare:
? cat(char first[], char second[])
{
char current = '';
int i = 0;
while (current != '\0')
{
current = first[i];
// somehow append current to whatever will eventually be returned
i++;
}
current = '';
i = 0;
while (current != '\0')
{
current = second[i];
// somehow append current to whatever will eventually be returned
i++;
}
return ?
}
int main(int argc, char* argv[])
{
char first[] = "Hello, ";
char second[] = "World!";
? = cat(first, second);
return 0;
}
E qui sono le mie domande:
- Come si usa nuova per trovare un negozio? Mi aspettavo di fare qualcosa come
std::string* result = new std::string;
o dovrei usare new per creare in qualche modo un'altra stringa in stile C? - Correlato alla domanda precedente, cosa devo restituire da cat()? Presumo che dovrà essere un puntatore se devo usare new. Ma un puntatore a cosa?
- Anche se il problema non menziona l'utilizzo di eliminare per liberare memoria, so che dovrei perché io ho usato nuovo da allocare. Dovrei semplicemente cancellare alla fine del main, giusto prima di tornare?
+1 Domanda ben composta. – Sabuncu