加载中...

浙江理工大学入队200题——14M

问题 M: 零基础学C/C++158——删除中间的*

题目描述

规定输入的字符串中只包含字母和号,除了字符串前导和尾部的号之外,将串中其他*号全部删除

输入

输入为多组测试数据。

输入数据包括一串字符串,只包含字母和*,总长度不超过80。

输出

输出删除中间*后的字符串。

样例输入 Copy

ABCDEFG

样例输出 Copy

***ABCDEFG

题解

思路很简单,但实现起来有点麻烦。将前面2题融合,保留前面与后面的*都改成删除即可。
你会发现我的代码是前两个的融合。要学会融会贯通鸭:.゚ヽ(。◕‿◕。)ノ゚.:。+゚
留个赞再走吧~(,,•́ . •̀,,)

代码(AC)

点击查看代码
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
int main ()
{
	char a[81];
	while(gets(a)!=NULL)
	{
		int n=strlen(a);
		for(int i=0;i<n;i++)
		{
			if(a[i]!='*') break;
			else printf("%c",a[i]); 
		}//前端 
		for(int i=0;i<n;i++)
		{
			if(a[i]=='*')
			{
				int flag=0;
				for(int j=i;j<n-1;j++)
				{
					if(a[j]!='*') flag=1;
				}
				if(flag)
				{
					flag=0;
					continue;
				}
			}
			 printf("%c",a[i]);
		}
		printf("\n");//后端 
	}
	return 0;
}

posted @ 2022-10-29 22:19  shany212  阅读(43)  评论(0编辑  收藏  举报