问题 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;
}