问题 L: 零基础学C/C++157——保留尾部*
题目描述
多组读入,每组输入一行字符串,规定输入的字符串中只包含字母和号,除了尾部的号之外,请将字符串中其他*号全部删除。
输入
输入数据包括一串字符串,只包含字母和*,总长度不超过80。
输出
输出按要求删除*后的字符串。(组与组之间要换行)
样例输入 Copy
ABCDEFG
样例输出 Copy
ABCDEFG****
题解
- 你可以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;
}