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;
}