冽栀 2021-12-02 21:36 采纳率: 80%
浏览 56
已结题

帮看一下,这是个什么意思

img


img

  • 写回答

2条回答 默认 最新

  • 关注

    代码修改如下(含测试代码):

    img

    代码

    #include <stdio.h>
    void insert(char* s1, char* s2, int n) 
    { 
        if (n < 0 || s1 == NULL || s2 == NULL) 
        { 
            printf("error"); 
        } else 
        {
            int i, j; 
            int str1 = 0; 
            int str2 = 0; 
            while (s1[str1] != '\0') 
                str1++; 
            while (s2[str2] != '\0') 
                str2++; 
            if (n > str1) 
            { 
                printf("error"); 
            } 
            char a[100]; 
            for (i = 0; i < n; i++) 
            { 
                a[i] = s1[i]; 
            }
            for (j = 0; j < str2; j++) 
            { 
                a[n + j] = s2[j]; 
            } 
            for (int k=0;k<str1-n;k++)
            {
                a[n+str2+k] = s1[n+k];
            }
            //重新赋值回s1
            for(i=0;i<str1+str2;i++)
            {
                s1[i]=a[i];
            }
            s1[i] = '\0'; //不是空格
        }
    }
    
    int main()
    {
        char s1[100],s2[100];
        int n;
        printf("input string 1:");
        gets(s1);
        printf("input string 2:");
        gets(s2);
        printf("input pos:");
        scanf("%d",&n);
        insert(s1,s2,n);
        printf("%s",s1);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月2日
  • 已采纳回答 12月2日
  • 修改了问题 12月2日
  • 创建了问题 12月2日