对于scanf的%s来说,它通过空格或者换行符来识别一个字符串的结束;
fgets识别换行符\n,作为输入的结束;
因此对于将要输入的一个字符串来说如果中间存在空格,则需要使用fgets,其他则两者都一样。
⚠️:使用fgets的时候,如果前面使用scanf输入过整数,则需要使用getchar函数来接收整数后的换行符。
⚠️:使用fgets格式一般为
char str[18];
fgets(str, 19, stdin);
19的原因是因为,末尾还要存储一个\0作为结束标志。
用strlen(str)得到的长度为str实际长度+1