我用dev c++编译正确,交到自己的做题网站显示错误,交到洛谷的在线IDE也显示错误(编译错误)?????求大佬帮忙
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
char s[10000],ss[10000],sum[10000][200];
int i,ans,t;
bool pd(char s1[10000])
{
int ii=0;
for (ii=1;ii<=ans;ii++)
if (strcmp(sum[ii],s1)!=0) return true;
if (ans==0) return true;
return false;
}
int main()
{
t=-1;
gets(s);
strlwr(s);
for (i=0;i<strlen(s);i++)
if ((s[i]<'a'||s[i]>'z')&&s[i]!=' ')
{
printf("NO");
return 0;
}
else
if (s[i]==' '&&t!=-1)
{
if (pd(ss))
ans++,
strcpy(sum[ans],ss);
t=-1;memset(ss,0,sizeof(ss));
}
else {t++;ss[t]=s[i];}
printf("%d",ans);
return 0;
}
洛谷报错:
/tmp/tmpd5hne9yi/src: 在函数‘int main()’中:
/tmp/tmpd5hne9yi/src:18:2: 错误:‘gets’在此作用域中尚未声明
gets(s);
^~~~
/tmp/tmpd5hne9yi/src:18:2: 附注:suggested alternative: ‘fgets’
gets(s);
^~~~
fgets
/tmp/tmpd5hne9yi/src:19:2: 错误:‘strlwr’在此作用域中尚未声明
strlwr(s);
^~~~~~
/tmp/tmpd5hne9yi/src:19:2: 附注:suggested alternative: ‘strstr’
strlwr(s);
^~~~~~
strstr
/tmp/tmpd5hne9yi/src:20:12: 警告:comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
for (i=0;i<strlen(s);i++)
~^~~~~~~~~~
另一个网站报错:
Main.cc: In function ‘int main()’:
Main.cc:18:2: warning: ‘char* gets(char*)’ is deprecated (declared at /usr/include/stdio.h:638) [-Wdeprecated-declarations]
gets(s);
^
Main.cc:18:8: warning: ‘char* gets(char*)’ is deprecated (declared at /usr/include/stdio.h:638) [-Wdeprecated-declarations]
gets(s);
^
Main.cc:19:10: error: ‘strlwr’ was not declared in this scope
strlwr(s);
^
Main.cc:20:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (i=0;i<strlen(s);i++)
另一个网站辅助解释:
gets(char *)'已弃用(在/usr/include/stdio.h:638声明)[-Wdeprecated-declarations] gets(s); ^ Main.cc:18:8:警告:不推荐使用'char * gets(char *)'(在/usr/include/stdio.h:638声明)[-Wdeprecated-declarations] gets(s); ^ Main.cc:19:10:错误:未在此范围内声明'strlwr':gets函数没有声明过就进行调用,检查下是否导入了stdio.h或cstdio头文件
未在以下范围内声明strlwr':字符串类函数没有声明过就进行调用,检查下是否引入了string.h或cstring头文件
求助啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊