加载中...

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

问题 L: 零基础学C/C++157——保留尾部*

题目描述

多组读入,每组输入一行字符串,规定输入的字符串中只包含字母和号,除了尾部的号之外,请将字符串中其他*号全部删除。

输入

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

输出

输出按要求删除*后的字符串。(组与组之间要换行)

样例输入 Copy

ABCDEFG

样例输出 Copy

ABCDEFG****

题解

  1. 你可以reverse一下原数组,就变成了保留开头的*,与上题一样了,然后后面输出不等于*字符就行。
    2.找到最后一个字符,前面*都作废,仅保留尾部的(我采用该方法,不然与上一题类同)

代码(AC)

点击查看代码
#include <iostream>
#include <cstdio>
#include <cstring>
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]=='*')
			{
				int flag=0;
				for(int j=i;j<n-1;j++)
				{
					if(a[j]!='*') flag=1;
				}
				if(flag==1)
				{
					flag=0;
					continue;
				}
			}
			 cout<<a[i];//若为字母,就直接输出;
                         //若为*则需判断后面后没有字符,没有的话才能输出
		}
		cout<<endl;
	}
	return 0;
}

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