TZOJ 删除前导多余的*号

描述

 

规定输入的字符串中只包含字母和*号,编写程序使字符串中前导的*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。

 

输入

 

输入数据包括一串只含字母和*的字符串和一个正整数n,字符串总长度不超过80。中间用空格隔开。

 

输出

 

输出按要求删除*后的字符串。

 

样例输入

 ****A*BC*DEF*C******* 3

样例输出

***A*BC*DEF*C*******

#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
    int n,m,j,i,k,h,s;
    string a;
   cin>>a;
    cin>>h;
    n=a.length();
    for(i=0;i<n;i++)
    {
        if(a[i]!='*')
        {
            k=i;
            break;
        }
    }
    if(k>h)
    {
        for(i=0;i<h;i++)
        {
            printf("%c",a[i]);
        }
        for(i=h;i<n-(k-h);i++)
        {
            a[i]=a[i+(k-h)];
            printf("%c",a[i]);
        }
        printf("\n");
    }
    else {
        for(i=0;i<n;i++)
        {
            printf("%c",a[i]);
        }
        printf("\n");
    }
}

 

posted @ 2018-03-28 20:07  极限之旅  阅读(497)  评论(0编辑  收藏  举报