假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。
假定输入的字符串中只包含字母和号。请编写函数fun,它的功能是:使字符串中尾部的号不得多于n个;若多于n个,则删除多于的号;若少于或等于n个,则什么也不做,字符串中间和前面的号不删除。
#include <stdio.h>
#include <string.h>
void fun(char *str, int n)
{
int len = strlen(str);
int count = 0;
// 统计尾部的*号个数
for (int i = len - 1; i >= 0; i--)
{
if (str[i] == '*')
{
count++;
}
else
{
break; // 遇到非*字符则跳出循环
}
}
if (count > n)
{
// 删除多余的*号
for (int i = 0; i < count - n; i++)
{
str[len - 1 - i] = '\0';
}
}
}
int main()
{
char str[] = "abc****";
int n = 2;
printf("处理前的字符串:%s\n", str);
fun(str, n);
printf("处理后的字符串:%s\n", str);
return 0;
}