一蓑烟雨682 2022-11-04 15:38 采纳率: 72.2%
浏览 38
已结题

将两个原数组的值按顺序赋给一个新的数组

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
    char a[10], b[10], c[20];
    int j; 
    scanf("%s%s", &a,&b);
    int sz1 = sizeof(a) / sizeof(a[0]);
    int sz2 = sizeof(b) / sizeof(b[0]);
    for (j = 0; j < sz1; j++) 
    {
        c[j] = a[j];
    }
    for (j = 0; j < sz2; j++) 
    {
        c[sz1 + j] = b[j];
    }
    printf("%s", c);
    return 0;
}

为什么上面不能将两个原数组的值按先后顺序赋给新数组呢?就比如a[2]=12,b[3]=abc,c[5]=12abc

  • 写回答

3条回答 默认 最新

  • 关注
    
    #define _CRT_SECURE_NO_WARNINGS 1
    #include <stdio.h>
    #include<string.h>
    int main()
    {
        char a[10], b[10], c[20];
        int j; 
        scanf("%s%s", &a,&b);
        int sz1 = strlen(a) ;
        int sz2 = strlen(b) ;
        for (j = 0; j < sz1; j++) 
        {
            c[j] = a[j];
        }
        for (j = 0; j < sz2; j++) 
        {
            c[sz1 + j] = b[j];
        }
    
        printf("%s", c);
        return 0;
    }
    

    用这个函数,那个函数可能把\0也包含在长度里面了

    img

    img

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月12日
  • 已采纳回答 11月4日
  • 创建了问题 11月4日