Ввод строки в структуру - C (СИ)
Формулировка задачи:
у меня есть структура:
мне нужно осуществить ввод строки любой длины в это значение.
как это сделать?
такой вариант не получается:
struct St
{
char *Fam;
};scanf("%s",&cli->Fam);Решение задачи: «Ввод строки в структуру»
textual
Листинг программы
#include <cstdio>
#include <cstdlib>
#include <cstring>
struct Student
{
char * Surname;
};
int main()
{
Student *S = (struct Student*)malloc(sizeof(struct Student));
S->Surname = malloc(150);
scanf("%149s", S->Surname);
system("pause");
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек:
(ввод/вывод), (работа с памятью), (работа со строками). - Создание структуры
Studentс одним полем Surname типа char*. - Выделение памяти под указатель на структуру
Studentс помощью malloc. - Выделение памяти под строку Surname внутри структуры с помощью malloc.
- Ввод строки Surname с помощью функции scanf, которая считывает строку, состоящую из 149 символов (или менее) в указанную переменную.
- Вывод на экран сообщения о завершении работы программы с помощью функции system(
pause). - Возврат 0, что означает успешный конец работы программы.