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

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

问题描述:

img

#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;
            i--; //第i个字符重新进入比较
        }        
    }
    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;
}

代码如下:

#include <stdio.h>
int fun(char* s,char c)
{
    int flag = 0;
    char *t;
    while(*s != '\0')
    {
        if(*s == c)
        {
            flag =1;
            t = s;
            while(*t != '\0')
            {
                *t = *(t+1);
                t++;
            }
            t--;
            *t = '\0';
        }else
            s++;
    }
    return flag;
}
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;
}