Ну, начать на до с того, что вот так:
int len;
printf("Print array's length: ");
scanf("%d", &len);
char str[len];
массивы не обявляют. Потому что у Вас написана чушь. В строке
char str[len];
записана инструкция компилятору - выделить массив именем
str и длиной из переменной
len. Но в момент компиляции значение переменной
len -
неизвестно. Оно может быть нулем, мусором, каким угодно числом. Вам - либо задавать массив фиксированной длины, либо брать память динамически через
malloc()/
calloc() (лучше последний - он сразу память нулями забьет)