在函数中传递和返回字符串指针

时间:2016-09-06 05:30:12

标签: c

我是字符指针和字符串概念的新手。因此,在传递字符串指针并在函数中返回字符串指针时遇到问题。该函数是"删除"。

#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'

在后续行中声明和定义函数的行中。

2 个答案:

答案 0 :(得分:3)

功能remove()已在stdio.h中定义。

int remove(const char *pathname);

请为您的函数char* remove()提供其他名称。

注意:每当您收到此类错误时,请尝试查看手册页。如果你在unix中。只需在终端输入man func_name即可。

答案 1 :(得分:1)

remove()是标准函数。您需要为remove()函数名称选择其他名称。因为remove()的函数定义与stdio.h中的原型不同。