字符串替换,将s中的连续*号字符替换成t前面相同数量的字符

输入字符串s和t,将s中的连续号字符替换成t前面相同数量的字符(剩余的或字母删除),完成后输出s。

1.输入:

xyz****abc

123

输出:

xyz123abc

 


输入:xyz**abc*

123

输出:

xyz12abc1

#include <stdio.h>

#define MAX_SIZE 128

int main()
{
    char s[MAX_SIZE], t[MAX_SIZE], r[MAX_SIZE];
    scanf("%s%s", s, t);
    const char *p1 = s;
    const char *p2 = t;
    char *q = r;
    while (*p1)
    {
        if (*p1 == '*')
        {
            do
            {
                if (*p2)
                    *q++ = *p2++;
            } while (*++p1 == '*');
            p2 = t;
        }
        else
        {
            do
            {
                *q++ = *p1++;
            } while (*p1 && *p1 != '*');
        }
    }
    *q = '\0';
    printf("%s", r);
    return 0;
}

img

img

#include<stdio.h>

int main()
{
    char s[250];
    char t[250];

    gets(s);
    gets(t);
    int len1=strlen(s);
    int j,k,h=0;
    for(j=0; j<len1; j++)
    {
        if(s[j]=='*')
        {
            s[j]=t[h];
            h++;
        }
        else
        {
            h=0;
        }
    }
    for(j=0; j<len1; j++)
    {
        printf("%c",s[j]);
    }
    //puts(s);
    return 0;
}

仅供参考:

#include <stdio.h>
#include <string.h>
char s[256];
char *p;
int r,n,i;
int main() {
    while (1) {
        printf("请输入一行文字(空行结束),\"%%20\"将替换为\" \",\"你懂得\"将替换为\"XXXXXX\":\n");
        fgets(s,256,stdin);
        if ('\n'==s[0]) break;
        p=s;
        while (1) {
            p=strstr(p,"%20");
            if (p) {
                memmove(p+1,p+3,strlen(p)-3+1);
                p[0]=' ';
            } else break;
        }
        p=s;
        while (1) {
            p=strstr(p,"你懂得");
            if (p) {
                memmove(p+6,p+6,strlen(p)-6+1);
                for (i=0;i<6;i++) p[i]='X';
            } else break;
        }
        printf("%s",s);
    }
    return 0;
}
//请输入一行文字(空行结束),"%20"将替换为" ","你懂得"将替换为"XXXXXX":
//abcdefg%20helloworld%20something.pdf
//abcdefg helloworld something.pdf
//请输入一行文字(空行结束),"%20"将替换为" ","你懂得"将替换为"XXXXXX":
//这是测试文字你懂得,在这个你懂的地方,就得做你懂得的事
//这是测试文字XXXXX,在这个你懂的地方,就得做XXXXX的事
//请输入一行文字(空行结束),"%20"将替换为" ","你懂得"将替换为"XXXXXX":
//