编写函数fun(char *a,int n)实现字符串的整理

来源:百度知道 编辑:UC知道 时间:2024/07/02 05:31:38
规定输入的字符串中,只能包含字母和*号,编写函数fun(char *a,int n),其功能是:使字符串前边连续的*号不多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做。例如:若输入字符串为: ******A*BC*DEF*G***, n的值为4,则删除后的字符串应是:****A*BC*DEF*G*** 。
用c++语言做

#include <stdio.h>
int fun(char*s,int n)
{
int flag=1;
for(int i=0;i<n;i++)//比较前n个字符是否为*
if(s[i]!='*')
{
flag=0;
break;
}

if(flag==0)
return 0;
else
{
int k=n;
while(s[k]!='\0')//移动到非*字符
{
if(s[k]=='*')
k++;
else
break;

}

int j=0;
while(s[k]!='\0')//向前复制
{
s[n+j]=s[k];
k++;
j++;
}
s[n+j]='\0';

}

return 1;
}
void main()
{
char str[]="******A*BC*DEF*G**";
fun(str,4);

printf("%s\n",str);
}