/* esStringheStrlen.cpp

Scrivere il corpo della funzione

    int my_strcat( char *dst, const char *src )

che modifica la stringa destinazione dst, concatenandovi
la stringa sorgente src.

Ad esempio, nel caso in cui d contenga "Ciao" e s contenga "Mondo"
dopo la chiamata della funzione:

my_strcat(d,s)

d deve contenere "CiaoMondo".

Ovviamente d deve essere una stringa preallocata di una dimensione
tale da poter contenere anche i caratteri della stringa sorgente.


******************************************************/


#include <iostream>

// #include <cstring>  // scommentare questa riga
                       // per poter usare le funzioni strlen, strcpy e strcmp
using namespace std;

void my_strcat(char* dst, const char *src) {
	
	int k = 0;
	while (dst[k] != '\0') {
		k++;
	}

    int i = 0;
    while (src[i] != '\0')
	   dst[k++] = src[i++];
  
    dst[k] = '\0';

    return;
}

int main(){
  const int DIM = 10; 
  char d[DIM] = {'C','i','a','o','\0'}; // puo' contenere al massimo una stringa lunga 9 caratteri (uno è riservato allo '\0')
  char s[] = "Mondo"; // puo' contenere al massimo una stringa lunga 9 caratteri (uno è riservato allo '\0')

  cout << "Contenuto della stringa destinazione prima della concatenazione: " << endl;
  cout << d << endl << endl;
  cout << "Contenuto della stringa sorgente, da concatenare: " << endl;
  cout << s << endl << endl;

  // concatenazione delle due stringhe
  my_strcat(d,s);
  cout << "Contenuto della stringa destinazione DOPO la concatenazione: " << endl;
  cout << d << endl << endl;

  // In alternativa si poteva utilizzare la funzione 'strcat' della libreria cstring
  //strcat(d,s);  

  return 0;
}
