我如何合并这两个数组? C

时间:2013-02-12 07:27:06

标签: c arrays merge

我正在完成一项学校作业,我无法弄清楚如何合并 这两个数组。我必须将每个数组的一半合并到第三个数组中。我正在转动轮胎,我想我已经在思考我必须做什么了。我不想浪费你的时间来解释我尝试过的所有事情。任何帮助将不胜感激,如果你发布任何代码,你可以向我解释它在做什么,因为我想了解发生了什么(尽可能多)提前谢谢!

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 254    

int main()
{

使用用户输入

捕获字符串
    char string_1[SIZE];
    printf( "Please enter a long string: " );
    fgets ( string_1, SIZE, stdin );

获取字符串长度以计算字节大小

    size_t ln = strlen(string_1) - 1;
    if (string_1[ln] == '\n')
        string_1[ln] = '\0';    

重复......

    char string_2[SIZE];
    printf( "Please enter a long string: " );
    fgets ( string_2, SIZE, stdin );
    size_t ln2 = strlen(string_2) - 1;
    if (string_1[ln2] == '\n')
        string_1[ln2] = '\0';

打印两个字符串的字节大小。

    printf("String 1 is %zu bytes long, and String 2 is %zu bytes long", ln, ln2);  

我想结束

    return 0;


}

1 个答案:

答案 0 :(得分:0)

检查此代码使用strncpy

char string_3[2*SIZE + 1];    
strncpy(string_3, string_1, strlen(string_1)/2);
string_3[strlen(string_1)/2] = '\0';
strncpy((string_3 + strlen(string_3)), string_2, strlen(string_2)/2);
string_3[strlen(string_1)/2 + strlen(string_2)/2] = '\0';