scanf는 null terminate를 해 주고 그만큼의 추가 공간이 필요 fread는 null terminate를 해 주지 않음 -> 배열이나 할당된 공간의 초기화 또는 직접 null terminate 필요 scanf("%[^\n]", str)으로 \n 문자를 입력받지 않을 수 있음 fread는 \n까지 읽어옴 // 100 글자 입력 char str[102] = {}; // null terminate를 위해 +1 int len = fread(str, sizeof(*str), sizeof(str) - 2, stdin); str[--len] = 0; //\n 무시 for (int i = 0; i < len; i++) ...