设计统计验证:PTA下字符串输入输出验证:循环配合%c读入串发生没想到的“段错误”

PTA下字符串输入输出验证:循环配合%c读入串发生没想到的“段错误”。
输入并输出一个不带空格的字符串。注意本题输入样例的字符串后教师设置时不带换行。PTA目前是%s和gets可以正确读入。循环配合%c读入(while((s[i]=getchar())!='\n') i++ ; s[i]=0; )会发生 “段错误”、测试失败。

输入格式:
Hellochina!

输出格式:
Hellochina!

输入样例:
Hellochina!
输出样例:
Hellochina!

还是段错误

代码如下:

#include <stdio.h>
int main()
{
    char s[100]={0};
    int i =0;

    
    while((s[i]= getchar()) != '\n')
    {
        i++;
    }
    if(i<99)
        s[i] = 0;
    else
        s[99] = 0;
    printf("%s\n",s);
    return 0;
}