Заполнение структуры через функцию - C (СИ)

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

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

Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3. char ch;
  4. int i,j;
  5. struct loc {
  6. char *name;
  7. char gr;
  8. };
  9. void reading (loc);
  10. int main() {
  11. loc l;
  12. void reading(loc &l);
  13. }
  14. void reading (loc &l){
  15. l.name="Hello"; // выдает deprecated conversion from string constant to 'char*'. а если сделать просто char - проект не запускается invalid conversion from 'const char*' to 'char'
  16. printf("%s",l.name);
  17. }

Решение задачи: «Заполнение структуры через функцию»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. struct loc {
  5. char name[100];
  6. char gr;
  7. };
  8.  
  9. void reading(loc* l) {
  10.     memset(l->name, 0, sizeof(l->name))
  11.     strncpy(l->name, "Hello", sizeof(l->name)-1);
  12. }
  13.  
  14. int main() {
  15.     loc l;
  16.     reading(&l);
  17.     printf("%s\n", l.name);
  18. }

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

  1. Подключение необходимых библиотек для работы с памятью и строками.
  2. Объявление структуры loc с полями name и gr.
  3. Функция reading принимает указатель на структуру loc и заполняет поля этой структуры.
  4. В функции reading используется функция memset для обнуления поля name.
  5. В функции reading используется функция strncpy для копирования строки Hello в поле name.
  6. В функции main создается экземпляр структуры loc с именем l.
  7. Функция reading вызывается для заполнения структуры l.
  8. Выводится значение поля name структуры l.

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


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

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

9   голосов , оценка 3.778 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы