求解,为什么putchar()输出的结果不正确。
#include<stdio.h>
#include<string.h>
int main()
{
char str1[21], str2[21], str3[21];
const int COUNT = 21;
int i, j;
printf("请输入一个长度不超过20的字符串(用getchar()实现):\n");
for (i = 0; i < COUNT; i++)
{
str1[i] = getchar();
if (str1[i] == '\n')
break;
}
printf("请输入一个长度不超过20的字符串(用gets()实现):\n");
gets(str2);
printf("请输入一个长度不超过20的字符串(用带\"%%s\"scanf()实现):\n");
scanf("%s", str3);
printf("\n输出结果:\n用putchar()实现:");
for (j = 0; j < i; j++)
putchar("%c", str1[j]);
printf("\n用带puts()实现:");
if (strlen(str2) < 22)
puts(str2);
printf("用带\"%%s\"printf()实现:");
printf("%s", str3);
return 0;
}