Сделать прогу которая скопирует структуру в другую но без номера телефона!(исправить ошибку) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#include<stdio.h>
#include<conio.h>

struct Sotrudnik {
char name[10];
char famili[10];
char ulicya[10];
long int telefon;
};
 
struct Sotrudnik1 {
char name[10];
char famili[10];
char ulicya[10];
};
 
void main()
{
int i;
struct Sotrudnik st[3];
struct Sotrudnik1 str[3];
st[0].name="Vasya";     _  _  _                <----- [C++ Error] Unit1.c(24): E2277 Lvalue required
st[0].famili="kent";
st[0].ulicya="metalistov";        _  _  _                <----- [C++ Error] Unit1.c(24): E2277 Lvalue required
st[0].telefon=1345;
 
st[1].name="Vasya";            _  _  _                                                :                 
st[1].famili="kent";        _  _  _                <----- [C++ Error] Unit1.c(24): E2277 Lvalue required
st[1].ulicya="metalistov";  _  _  _                                                    :
st[1].telefon=1345; 
 
st[2].name="Vasya";
st[2].famili="kent";
st[2].ulicya="metalistov";
st[2].telefon=1345;
 
for(i=0; i<3; i++)
        { str[i].name=st[i].name;
          str[i].famili=st[i].famili;
          str[i].ulicya=st[i].ulicya; }
getch();
return 0;
}
помогите передалать

Решение задачи: «Сделать прогу которая скопирует структуру в другую но без номера телефона!(исправить ошибку)»

textual
Листинг программы
#include<stdio.h>
#include<conio.h>
#include<string.h>
 
struct Sotrudnik {
char name[10];
char famili[10];
char ulicya[10];
long int telefon;
};
 
struct Sotrudnik1 {
char name[10];
char famili[10];
char ulicya[10];
};
 
#define ARRAY_SIZE 3
 
int main(int argc, char *argv[])
{
int i;
struct  Sotrudnik src[ARRAY_SIZE] = { // инициализируем массив данными
             { "vasia", "petrov", "svetlaya", 123456789 },
             { "sidor", "ivanov", "krivaya", 932313435 },
             { "ivan", "ivanov", "drugaya", 56564787 }
            };
struct Sotrudnik1 out[ARRAY_SIZE];
  
  // copy structures
  for(i=0; i<ARRAY_SIZE; i++)
  {
       memcpy(&out[i], &src[i], sizeof(Sotrudnik1)); // копируем структуру просто как буфер данных <--
       printf("%s %s %s\n", out[i].name, out[i].famili, out[i].ulicya);
       
  }
    return 0;
}

Объяснение кода листинга программы

В этом коде определен массив структур Sotrudnik и Sotrudnik1. Структура Sotrudnik содержит поля name, famili и ulicya типа char и поле telefon типа long int. Структура Sotrudnik1 содержит поля name, famili и ulicya типа char. В массиве src инициализированы структуры Sotrudnik с некоторыми значениями. В массиве out создаются структуры Sotrudnik1, в которые будут копироваться данные из структур src. Затем выполняется цикл for, который проходит по всем элементам массива src. Для каждого элемента массива src выполняется операция memcpy, которая копирует данные из этого элемента массива src в соответствующий элемент массива out. При этом копируются только данные типа Sotrudnik1, то есть без учета поля telefon. После завершения цикла выводится содержимое всех структур Sotrudnik1. В конце программы возвращается 0, что означает успешное выполнение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы