在指定位置插入字符

57 篇文章 1 订阅

  下列给定程序中,函数fun的功能是;在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。 例如,若S所指字符串为”baacda”,c中的字符为a,执行后s所指字符串为”baaaacdaa”.
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

void fun(char *s, char c)
{
    int i, j, n;
    for (i = 0; s[i] != _(1)_ ; i++)
    {
        if (s[ i ] == c)
        {
            n = _(2)_ ;
            while (s[ i + 1 + n] != '\0')
                n++;
            for (j = i + n + 1; j>i; j--)
                s[j + 1] = s[j];

            s[j + 1] = _(3)_ ;
            i = i + 1
        }
    }
}
main( )
{
    char s[ 80 ] = "baacda", c;
    printf ("\nThe string:% s\n"s);
    printf ("\nInput a character:");
    scanf("% c" % c);
    fun(s, c);
    printf ("\nThe result is:%s\n", s);
}

解答:(1) ‘\0’ , (2) 0, (3) c;
  1. 最外层for循环的作用是遍历字符串,直到遇到字符串结束标志’\0’;
  2. 这里n的作用是找到字符串的结尾位置s[ i + 1 + n] == ‘\0’,n表示对i+1位置的偏移量,从0开始;
  3. 移动操作结束后,在当前字符的下一个位置插入指定的字符c.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sanqima

一键三连,多多益善

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值