1.在vscode中使用终端键入字符串时,常使用回车终止输入,此时会发现
fgets(str,num,stdin)输入字符串时,其字符串长度与gets(str)存在差异。
其中
1.1 gets其字符串长度=输入字符长度
#include<stdio.h> #include<string.h> int main() { char str[100]; gets(str);//字符串输入 printf("%d",strlen(str)); return 0; }
asdf 4
1.2 fgets 字符串长度=输入字符长度+\n (当然其自动还补\0表结束,其占输入位而不存储)
#include<stdio.h>
#include<string.h>
int main()
{
char str[100];
fgets(str,101,stdin);//字符串输入
printf("%d",strlen(str));
return 0;
}
asdf //键入
5 //输出长度
1.3 另之所以写该文加深印象,是开始使用 在线编译器时,其键入后无需回车结束,故其使用fgets输入字符串时,与VScode编译结果略有差异,给我造成困扰。