fork download
  1. #include <stdio.h>
  2.  
  3. #define LEN1 7
  4. #define LEN2 5
  5.  
  6. // data1 に data2 を連結する関数
  7. void cat_data(int *data1, const int *data2, int len2) {
  8. // data1 の現在のデータ数を調べる(0を空きとみなす)
  9. int count1 = 0;
  10. while (count1 < LEN1 && data1[count1] != 0) {
  11. count1++;
  12. }
  13.  
  14. // data2 を data1 の空きにコピー(LEN1 を超えない範囲で)
  15. for (int i = 0; i < len2 && count1 < LEN1; i++) {
  16. data1[count1] = data2[i];
  17. count1++;
  18. }
  19. }
  20.  
  21. int main(void) {
  22. // 初期値(例):data1 に3つだけ値を入れて残りは空き
  23. int data1[LEN1] = {1, 2, 3, 0, 0, 0, 0};
  24. int data2[LEN2] = {4, 5, 6, 7, 8};
  25.  
  26. cat_data(data1, data2, LEN2);
  27.  
  28. // 結果を出力
  29. for (int i = 0; i < LEN1; i++) {
  30. printf("%d ", data1[i]);
  31. }
  32. printf("\n");
  33.  
  34. return 0;
  35. }
  36.  
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
1 2 3 4 5 6 7