删除字符串中的首个指定字符(命令行参数)

img

代码如下:

#include <stdio.h>

int fun(char* s,char c)
{
    int j;
    
    while(*s != '\0')
    {
        if(*s == c)
        {
            j=0;
            while(*s != '\0')
            {
                *s = *(s+1);
                s++;
            }
            s--;
            *s = '\0';
            return 1;
        }
        s++;
    }
    return 0;
}

int main()
{
    char buf[100]={0},c;
    int index = 0;
    int isvalid = 0;
    gets(buf);
    while(buf[index] != '\0')
    {
        if(buf[index] == ' ' && buf[index+1] != '\0')
        {
            isvalid = 1;
            c = buf[index+1];
            buf[index] = '\0';
            break;
        }
        index++;
    }
    if(!isvalid )
    {
        printf("input eror,end\n");
        return 0;
    }
    if(fun(buf,c))
        printf("%s\n",buf);
    else
        printf("The string does not contain character '%c'\n",c);
    return 0;
}
#include <stdio.h>

int del(char *str,char ch)
{
    int flag=0;
    for(int i=0;str[i]!='\0';i++)
    {
        if(str[i]==ch)
        {
            for(int j=i;str[j]!='\0';j++)
            {
                str[j]=str[j+1];
            }
            flag=1;
            break;  //删除这行则是删除所有指定字符
        }        
    }
    return flag;
}

int main(int argc, char *argv[])
{
    if(argc != 3)
    {
        printf("Input error,End.\n");
        return 1;
    }
    
    char *str=argv[1];
    char ch=argv[2][0];
    
    int flag=del(str,ch);
    
    if(!flag)
    {
        printf("The string dose not cantain character %c\n",ch);
        return -1;
    }
    printf("%s\n",str);
    return 0;
}

忘了要做成函数了