Hi , i have a problem with my code..Please someone help me!

Code:
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h>   
void toLower(char *v)  { int i;      
for (i=0; i<strlen(v); i++)           // Se il carattere corrispondente della stringa  un carattere maiuscolo, ovvero  compreso tra A e Z...           if ( (v[i]>='A') && (v[i]<='Z') ) v[i]+=32; }   
int main()  {       
char *v=NULL ;        
char val;        
char size = 0;       
int i;    
do  {               
printf ( "Inserire un nuovo elemento nell'array :");   
scanf ("%c", &val);             
v = (char*) realloc( v, (++size)*(sizeof(char)) );             
v[size] = val;          } 
while (val != '0');    
printf( "Elementi nell'array:"); // stampa normalmente l'intero array nominato v[]    
for(i=0; i<size; i++){         
if(v[i] <= '9' && v[i] >= '1' )  continue;         
else  printf("%c ", v[i]);}   
printf( "Elementi nell'array convertiti:" );    
for (i=0; i<size; i++) {             
toLower(v);      
printf ("%c\n",v); }    
free(v); 
return 0; }
i have a problem with The last printf.The output should be, for exemple :


( I digit)A
(I digit) 7
(I digit) H
(I digit) 7
(Idigit ) 4
(i digit) I
(I digit) 0


String .. : "AHI"
String 2 .. : "all" but here , output is 0




Could someone help me?


I tried ti correct my code here :


Code:


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>


char* toLower(char *v)  {
int i, j=0;
char *tmp; 
tmp = (char*)malloc(strlen(v)*sizeof(char));    
   for(i=0; i<strlen(v); i++){
      tmp[i] = tolower(toascii(v[i])); 
   }
return tmp; 
}


void my_printf(char *v){
int i; 


   for(i=0; i<strlen(v); i++){
      if(v[i] <= '9' && v[i] >= '1' )  continue;
        else  printf("%c", v[i]);
     }
}


int main()  {
char *v = NULL, *low=NULL;
char val;
int size = 0;
int i, j;


   printf ( "Inserire elementi nell'array :\n");


for(i=0; ; i++){
   scanf("%c", &val); 
   if( val == '0') break; 
   else{
      v = (char*)realloc(v, sizeof(char)); 
      v[i] = val; 
      getchar(); //Elimina il newline
   }
}




    printf( "Elementi nell'array:\n"); 
   my_printf(v); 


     
    printf("\nStringa convertita:\n"); 
   char *x; 
   x=toLower(v);
   
   printf("%s\n", x); 


    return 0; 
}