【每日编程-432期】西安交通大学上机题(四)

教育   2025-01-30 10:02   江西  

西安交通大学上机题(四)


每日编程中遇到任何疑问、意见、建议请公众号留言或加入每日编程群聊739635399



输入字符串,删除字符串内指定字符串。

输入格式:

第一行输入一个字符串

第二行输入想要删掉的字符串

输出格式:

输出剩下的字符串

输入样例:

abcdefg
bcd

输出样例:

aefg

解决方法:

(1)代码实现:

#include <stdio.h>
#include <string.h>
int main()
{
    int p = 100;
    printf("请输入字符串:\n");
    char a[p];
    scanf("%s", a);
    printf("请输入要删除的子串:\n");
    char b[p];
    scanf("%s", b);
    int k, t;
    k = strlen(b); //获得要删除的子串的长度
    t = strlen(a); //获得原始字符串的长度
    int i = 0, j = 0;
    int s = -1;
    int y = 0;
    while (i < t)
    {
        j = 0;
        y = i;
        if (a[i] == b[j])
        {
            while (j < k)
            {
                if (a[i] != b[j])
                {
                    break;
                }
                ++i;
                ++j;
            }
            if (j == k)
            {
                s = y; //这里用s来记录子串匹配成功时的起始位置
                break;
            }
        }
        i = y; //如果匹配不成功,要退回到匹配前的位置
        ++i;
    }
    if (s == -1)
    {
        printf("\n未找到子串\n");
    }
    else
    {
        while (s + k < t)
        {
            a[s] = a[s + k];
            ++s;
        }
        for (j = 0; j < t - k; ++j)
        {
            printf("%c ", a[j]);
        }
    }
    return 0;
}

明日预告:西安交通大学上机题(五)

n个小朋友轮流数数,每次+1,mod k为零时该名小朋友失败,问最后谁赢?

输入格式:

输入小朋友的个数n和被除数k。

输出格式:

输出最后一名出局的小朋友的序号。

输入样例:

5
2

输出样例:

3


灰灰考研
最全的【计算机考研】【软件考研】考研信息! 最丰富的共享资料! 最大程度上帮助学渣狗登上研究生大门!
 最新文章