我是字符指针和字符串概念的新手。因此,在传递字符串指针并在函数中返回字符串指针时遇到问题。该函数是"删除"。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char* remove(char* ,char ,int );
int main(){
int count, i;
char ch;
char* a;
char* b;
b=(char*)malloc(sizeof(char)*10);
a=(char*)malloc(sizeof(char)*10);
gets(a);
for(i=0;*a='\0';i++)
{
ch=a[i];
b=remove(&a[i],ch,i);
}
}
char* remove(char* str,char x,int k)
{
char* str2=(char*)malloc(sizeof(char)*10);
int i,j;
j=0;
int len;
len=strlen(str);
for(i=k;i<len;k++)
{
if(str[i]!='x')
{
str2[j]=str[i];
j++;
}
}
return str2;
}
我得到的错误是
error:conflicting types for 'remove'
在后续行中声明和定义函数的行中。
答案 0 :(得分:3)
功能remove()
已在stdio.h
中定义。
int remove(const char *pathname);
请为您的函数char* remove()
提供其他名称。
注意:每当您收到此类错误时,请尝试查看手册页。如果你在unix中。只需在终端输入man func_name
即可。
答案 1 :(得分:1)
remove()
是标准函数。您需要为remove()
函数名称选择其他名称。因为remove()
的函数定义与stdio.h
中的原型不同。