fork download
  1. #include <stdio.h>
  2.  
  3. void cat_data(int *data1, const int *data2, int len2);
  4.  
  5. int data1[7] = {1, 2};
  6.  
  7. int main() {
  8. int data2[5] = {3, 4, 5, 6, 7};
  9.  
  10. int len2 = 0;
  11. for (int i = 0; i < 5; i++) {
  12. if (data2[i] != 0)
  13. len2++;
  14. else break;
  15. }
  16.  
  17. cat_data(data1, data2, len2);
  18.  
  19. printf("連結後のdata1\n");
  20. for (int i = 0; i < 7; i++) {
  21. printf("data1[%d] = %d\n", i, data1[i]);
  22. }
  23.  
  24. return 0;
  25. }
  26.  
  27. void cat_data(int *data1, const int *data2, int len2) {
  28. int i;
  29.  
  30. int len1 = 0;
  31.  
  32. for (i = 0; i < 7; i++) {
  33. if (data1[i] != 0)
  34. len1++;
  35. else break;
  36. }
  37. int copy_len = 7 - len1;
  38.  
  39. if (copy_len > len2)
  40. copy_len = len2;
  41.  
  42. for (i = 0; i < copy_len; i++) {
  43. data1[len1 + i] = data2[i];
  44. }
  45. }
Success #stdin #stdout 0s 5324KB
stdin
Standard input is empty
stdout
連結後のdata1
data1[0] = 1
data1[1] = 2
data1[2] = 3
data1[3] = 4
data1[4] = 5
data1[5] = 6
data1[6] = 7