每日编程中遇到任何疑问、意见、建议请公众号留言或加入每日编程群聊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