fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. int main() {
  6. char *array1[] = {
  7. "1 12 37 39",
  8. "1 37 38",
  9. "90 84 86 88 90"
  10. };
  11.  
  12. char *array2[] = {
  13. "37 39",
  14. "37 38",
  15. "84 86 88 90"
  16. };
  17.  
  18. // Определение размера массивов
  19. int size1 = sizeof(array1) / sizeof(array1[0]);
  20. int size2 = sizeof(array2) / sizeof(array2[0]);
  21.  
  22. // Создание массива для хранения совпадающих элементов
  23. char **resultArray = (char **)malloc(size1 * sizeof(char *));
  24. int resultSize = 0;
  25.  
  26. // Сравнение элементов двух массивов
  27. for (int i = 0; i < size1; i++) {
  28. for (int j = 0; j < size2; j++) {
  29. if (strcmp(array1[i], array2[j]) == 0) {
  30. resultArray[resultSize] = strdup(array1[i]);
  31. resultSize++;
  32. break;
  33. }
  34. }
  35. }
  36.  
  37. // Вывод совпадающих элементов
  38. printf("Значение нового массива из совпадающих элементов:\n");
  39. for (int i = 0; i < resultSize; i++) {
  40. printf("%s\n", resultArray[i]);
  41. }
  42.  
  43. // Освобождение памяти
  44. for (int i = 0; i < resultSize; i++) {
  45. free(resultArray[i]);
  46. }
  47. free(resultArray);
  48.  
  49. return 0;
  50. }
Success #stdin #stdout 0s 5300KB
stdin
Standard input is empty
stdout
Значение нового массива из совпадающих элементов: