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"); } }