Заполнение структуры через функцию - C (СИ)
Формулировка задачи:
#include <stdio.h> #include <string.h> char ch; int i,j; struct loc { char *name; char gr; }; void reading (loc); int main() { loc l; void reading(loc &l); } void reading (loc &l){ l.name="Hello"; // выдает deprecated conversion from string constant to 'char*'. а если сделать просто char - проект не запускается invalid conversion from 'const char*' to 'char' printf("%s",l.name); }
Решение задачи: «Заполнение структуры через функцию»
textual
Листинг программы
#include <stdio.h> #include <string.h> struct loc { char name[100]; char gr; }; void reading(loc* l) { memset(l->name, 0, sizeof(l->name)) strncpy(l->name, "Hello", sizeof(l->name)-1); } int main() { loc l; reading(&l); printf("%s\n", l.name); }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с памятью и строками.
- Объявление структуры
loc
с полямиname
иgr
. - Функция
reading
принимает указатель на структуруloc
и заполняет поля этой структуры. - В функции
reading
используется функцияmemset
для обнуления поляname
. - В функции
reading
используется функцияstrncpy
для копирования строкиHello
в полеname
. - В функции
main
создается экземпляр структурыloc
с именемl
. - Функция
reading
вызывается для заполнения структурыl
. - Выводится значение поля
name
структурыl
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д