我做了一个程序来计算一个句子中的给定单词。当我尝试通过编译器运行它时,它说''gets is deprecated''。所以我用fgets替换了gets,但是每个单词和句子都输出0。我该如何解决这个问题?
ion-content
答案 0 :(得分:1)
gets()
和fgets()
之间的区别在于fgets()
保留了最终'\n'
而gets()
没有。{/ p>
"字"代码现在正在寻找包含'\n'
。
删除潜在的'\n'
并继续使用之前的代码。
fgets(str, 1026, stdin);
str[strcspn(str, "\n")] = '\0';
fgets(w, 1026, stdin);
w[strcspn(w, "\n")] = '\0';
使用fgets()
// fgets(str, 1026, stdin);
if (fgets(str, sizeof str, stdin) == NULL) return -1;