0

私は学校の課題に取り組んでおり、これら 2 つの配列をマージする方法がわかりません。各配列の半分を 3 番目の配列にマージする必要があります。私は自分のタイヤを回しています。私は自分がしなければならないことを考えすぎていると思います。私が試したすべてのことを説明するのに時間を無駄にしたくありません。また、コードを投稿する場合は、何が起こっているのかを(可能な限り)理解したいので、それが何をしているのか説明してもらえますか?

#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';

2 つの文字列のバイト サイズを出力します。

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

連結したい

    return 0;


}
4

1 に答える 1

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';
于 2013-02-12T07:46:00.967 に答える