大家来看看为什么这段代码总是不通过呢?提示与unlink声明中的类型不匹配

来源:百度知道 编辑:UC知道 时间:2024/06/01 23:36:58
#include <stdio.h>
#define MAXLINE 1000

int getline(char line[],int maxline);
int remove(char s[]);

main()
{
char line[MAXLINE];

while(getline(line,MAXLINE)>0)
if(remove(line)>0)
printf("%s",line);
return 0;
}

int getline(char s[],int lim)
{
int c,i;

for(i=0;i<lim-1&&(c=getchar())!=EOF&&c!='\n';++i)
s[i]=c;
if(c=='\n')
{
s[i]=c;
++i;
}
s[i]='\0';
return i;
}

int remove(char s[])
{
int i;

i=0;
while(s[i]!='\n')
++i;
--i;
while(i>=0&&(s[i]==' '||s[i]=='\t'))
--i;
if(i>=0)
{
++i;
s[i]='\n';
++i;
s[i]='\0';
}
return i;
}

因为stdio.h中有个函数,名字也是remove的,你和他重名了。

改成remov吧

#include <stdio.h>
#define MAXLINE 1000

int getline(char line[],int maxline);
int remov(char s[]);

main()
{
char line[MAXLINE];

while(getline(line,MAXLINE)>0)
if(remov(line)>0)
printf("%s",line);
return 0;
}

int getline(char s[],int lim)
{
int c,i;

for(i=0;i<lim-1&&(c=getchar())!=EOF&&c!='\n';++i)
s[i]=c;
if(c=='\n')
{
s[i]=c;
++i;
}
s[i]='\0';
return i;
}

int remov(char s[])
{
int i;

i=0;
while(s[i]!='\n')
++i;
--i;
while(i>=0&&(s[i]==' '||s[i]=='\t'))
--i;
if(i>=0)
{
++i;
s[i]='\n';
++i;
s[i]='\0';
}
return i;