删除字符串
题目描述:给你一个字符串S,要求你将字符串中出现的所有"gzu"(不区分大小写)子串删除,输出删除之后的S。
就是说出现“Gzu”、“GZU”、“GZu”、"gzU"都可以删除。
输入描述:输入一行字符串S,长度不超过100。
输出描述:输出进行删除操作之后的S。
C语言代码
#include <stdio.h>
#include <string.h>
int main()
{
char s[100];
scanf("%s", s);
int len = strlen(s);
for (int i = 0; i < len; i++)
{
if (s[i] == 'g' || s[i] == 'G')
{
if ((s[i + 1] == 'z' || s[i + 1] == 'Z') && (s[i + 2] == 'u' || s[i + 2] == 'U'))
{
for (int j = i; j < len-3; j++)
s[j] = s[j + 3];
s[len - 1] = '\0';s[len - 2] = '\0';s[len - 3] = '\0';//将后三个字符置为结束
len = len - 3;//字符串长度减3
i--;
}
}
}
printf("%s", s);
return 0;
}
注意移动位置后将最后三个重复的值清空。