//#include <string.h> “strlen”需要用到这个头文件
//#include <stdlib.h> “malloc”需要用到这个头文件

//char arr[201]; //函数内声明的char arr[201]无法被返回
//题干已经说明先放word1再放word2了
char* mergeAlternately(char* word1, char* word2) {
    int l1, l2, i=0, j=0; 
    l1 = strlen(word1);  // 只有字符数组才能用stelen
    l2 = strlen(word2);
    char *arr = (char*)malloc(sizeof(char)*(l1+l2+1));  // arr只是分配了空间,没有初始化,不能用strlen,至少要有\0
    for(i; i<l1 || i<l2; i++){  // i是对应word1和word2的每一个位置的;j是用于构建arr的
        if(i < l1){
            arr[j++] = word1[i];
        }
        if(i < l2){
            arr[j++] = word2[i];
        }
    }
    arr[j] = '\0';  // 此时j指向最后元素的下一个位置
    return arr;
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务