sse——删掉字符串中第一个出现的a字符

下面程序的功能是删除字符串中第一次出现的a字符。其中有两处错误,请改正并使程序正确执行。

#include <stdio.h>

#include <string.h>

void fun(char *s,int n,int *t)

{

    int i,k=0;

    s[n]='a';

    s[n+1]='\0';

    while(s[k]!='a') k++;

    if(k==n){*t=0;}

    else

    {

        for(i=k;i<n;i++)

            s[i]=s[i+1];

        s[i]='\0';

    }

}

int main()

{

    char s[20];

    int len,t;

    printf("Input a string:");

    gets(s);

    len=strlen(s);

    fun(s,len,t);

    if(t==0) printf("Not exist!\n");

    else    printf("Result is:%s\n",s);

    return 0;

}

正解

#include <stdio.h>
#include <string.h>
void fun(char s[],int n,int *t)
{
    int i,k=0;
    while(1)
    {

        if(k==n)
        {
            *t=0;

        }
        if(s[k]=='a')
        {
            for(i=k; i<n; i++)
                {s[i]=s[i+1];}
            *t=1;
            break;
        }
        k++;
    }
}
int main()
{
    char s[20];
    int len,t;
    printf("Input a string:");
    gets(s);
    len=strlen(s);
    fun(s,len,&t);
    if(t==0) printf("Not exist!\n");
    else    printf("Result is:%s\n",s);
    return 0;
}
 

posted @ 2022-11-16 18:55  诩en  阅读(129)  评论(0)    收藏  举报