字符串输入输出验证:gets、%s、循环配合%c是否可以读入串?

字符串输入输出验证:gets、%s、循环配合%c是否可以读入串?
从键盘输入一个字符串并显示到屏幕。本题验证下字符串的输入输出方法。 注意:当输入样例字符串后带换行,gets、%s、循环配合%c读入(while((s[i]=getchar())!='\n') i++ ; s[i]=0; )都可以。

输入格式:
在一行中输入串后回车。

输出格式:
显示字符串。

输入样例:
HelloChina!
输出样例:
HelloChina!


#include <stdio.h>
int main()
{
    char b1[100]={0};
    char b2[100]={0};
    char b3[100]={0};
    int i=0;
    printf("使用gets函数读入字符串:");
    gets(b1);
    printf("输出gets函数得到的字符串:%s\n",b1);
    printf("使用scanf函数读入字符串:");
    scanf("%s",b2);
    printf("输出使用scanf函数读入的字符串:%s\n",b2);
    printf("使用%%c读取字符串:");
    getchar();
    while(i < 100)
    {
        scanf("%c",&b3[i]);
        if(b3[i] == '\n')
            break;
        i++;
    }
    if(i<99)
        b3[i] = '\0';
    else
        b3[99] = '\0';
    printf("输出使用%%c读取字符串:%s\n",b3);
    return 0;
}