fgets выводит странные символы мусора


Я пытаюсь напечатать строку, которую fgets берет из ввода с клавиатуры. Но когда я запускаю программу, я получаю бесконечный цикл странных символов. Почему?

Вот мой код:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define SIZE 6

void stringF();
void revString();
void stringLength();
void verticalString();
void triString();

int main() {
  char string[SIZE];
  stringF(&string[0]);
  system("pause");
  return 0;
}

void stringF(char* str) {
  fgets(str, SIZE, stdin);
  while (str != '') {
    putchar(str);
    str++;
  }
}
1 2

1 ответ:

Перепишите цикл как

if ( fgets(str, SIZE, stdin) != NULL )
{

   while ( *str != '\0'){
        putchar(*str);
        str++;
    }
}