假定输入的字符串中只包含字母和*号。请编写函数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;
}

posted on 2024-06-24 23:46  wessf  阅读(38)  评论(0)    收藏  举报