si ma non sparei come fare per usare le stringhe, qualche consiglio?

Lo scopo finale è quello poi di creare un agenda dove posso inserire le note..cioè mi spiego meglio:
nella struct che ho postato ci andrebbe un campo nota dove uno può per esempio scrivere compleanno o cose così...
dopo dal main o dalla funzione tramite inseriscidata dovrei allocare tramite malloc uno spazio di memoria per la nuova struttura. Non so se sono stato molto chiaro a dire il vero
Poi l'utente una volta inserita la sua nota decide se inserirne un'altra o no..e poi bisognerebbe tramite una funzione stampare tutto.
Però direi un problema alla volta
Cosa dovrei aggiustare per fargli stampare correttamente l'orario?
E cosa dovrei fare per far si che magari in un futuro non perda le info che faccio inserire all'utente?
Grazie mille in anticipo a te e a chiunque risponderà
Ti riposto di nuovo il codice con code e togliendo due parti che non servono che sono commentate così riesce a vederlo meglio:

codice:
#include<stdio.h>
#include<stdlib.h>

struct data inserisciData();

struct data{
  int giorno;
  int anno;
  char *mese;
  char *ora;
};

main(){
  int i;
  struct data domani;
  printf("Avvio del programma\n");
  domani = inserisciData();
  printf("Il giorno e': %d\n",domani.giorno);
  printf("Il mese e': %s\n",domani.mese);
  printf("L'anno e': %d\n",domani.anno);
  printf("L'ora e': %s\n",domani.ora);
  return 0;
}

struct data inserisciData(){
   struct data oggi;
   int day, month, year; // giorno anno mese
   int hour, minute;
   int x = 0; // variabile che uso per controllare se la data inserita è corretta o meno. settata  a 0 non lo è settata a 1 si
   int y = 0; //uguale a sopra solo per l'ora
   char orario[10];
   char* nomemese[]={"Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"};
   
do{
printf("Inserisci un giorno: \n");
scanf("%d",&day);
printf("Inserisci un mese: \n");
scanf("%d",&month);
printf("Inserisci un anno: \n");
scanf("%d",&year);
   if(day<1 || day>31){
   printf("I mesi hanno al massimo 31 giorni\n");
   }
   if(month<1 || month>12){
    printf("Hai inserito un numero di mese che non esiste\n");
   }
   else if(month==1 || month==3 || month==5 || month==7 || month==8 || month==10 || month==12){
             if(day>0 && day<=31){
                x=1;
             }
   }
   else if(month==4 || month==6 || month==9 || month==11){
                 if(day>0 && day<=30){
                          x=1;
                  }
    }
   else if(month==2){
           if(day>0 && day<29){
                x=1;
           }
   }
    else
           printf("Hai digitato un numero di giorni che non corrsiponde al mese che hai inserito\n");
    if(x==0){
          printf("Ripeti l'inserimento della data\n");
    }

}while(x==0);


do{
printf("Inserisci l'ora dell'appuntamento e poi alla prossima richiesta i minuti (hh): \n");
scanf("%d", &hour);
printf("Inserisci i minuti (mm): \n");
scanf("%d", &minute);
if(hour>=0 && hour<=23){
         if(minute>=0 && minute<=59){
             y=1;
         }
}

}while(y==0);

sprintf(orario, "%d:%d", hour, minute);
oggi.giorno=day;
oggi.mese=nomemese[month-1]; /*-1 perchè l'array parte da 0*/
oggi.anno=year;
oggi.ora=orario;
printf("Il giorno e': %d\n",oggi.giorno);
printf("Il mese e': %s\n",oggi.mese);
printf("L'anno e': %d\n",oggi.anno);
printf("L'ora e' %s\n",oggi.ora);
return oggi;
}