「strcopy」と「strcat」でこれを行う方法を見てきましたが、定義済みの文字列関数を使用することは許可されていません。
私は与えられています:
void str_cat_101(char const input1[], char const input2[], char result[]);
そして、input1 と input2 の文字を (左から右に) 結果に入れる必要があります。引数リスト内の 2 つの異なる文字列を表す変数 i と j を使用して、2 つの for ループを使用する必要がありますか? 1 つの文字列から値をコピーする方法は知っていますが、2 つの文字列から値を転送する方法については混乱しています。助けてくれてありがとう。
これが私のstring.cファイルにあるものですが、正しい方法ではなかったように感じます。
void str_cat_101(char const input1[], char const input2[], char result[])
{
int i, j;
for (i = 0; input1[i] != '\0'; i++)
{
result[i] = input1[i];
}
result[i] = '\0';
for (j = 0; input2[j] != '\0'; j++)
{
result[j] = input2[j];
}
result[j] = '\0';
}
そして、ここに私のテストケースがあります:
void str_cat_101_tests(void)
{
char input1[4] = {'k', 'a', 'r', '\0'};
char input2[3] = {'e', 'n', '\0'};
char result[7];
str_cat_101(input1, input2, result);
checkit_string("karen", result);
}
int main()
{
str_cat_101_tests();
return 0;
}