Hi , i have a problem with my code..Please someone help me!
i have a problem with The last printf.The output should be, for exemple :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 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; }



LinkBack URL
About LinkBacks


