C语言如何实现多行输入字符串

在事先不知道要输入几行字符串的情况下(字符串含空格),如何实现多行输入
是用
char ch【100】;
while(gets(ch)!=NULL){}
吗?
还是
while(gets(ch)!='\0'){}
呢?
如果都不对,请指教。

scanf方式

char str[10][10];//定义二维数组,保存多个字符串
int i = 0;
while (~scanf("%s", str[i]))
{
i++;
}

这里每次敲下回车会结束一次输入,循环进行一轮。