Указатель на строку в структуре - C (СИ)
Формулировка задачи:
Ахой, товарищи.
Имею такой вопрос
дана структура
как возможно простому смертному ее заполнить?) Спасибо
struct naww { char *name; }str[2];
Решение задачи: «Указатель на строку в структуре»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> struct naww { char *name; }str[2]; int main() { setlocale (LC_CTYPE, "Russian"); char buf[BUFSIZ]; int i; printf("\nВвод первой строки:\t"); gets (buf); str[0].name = (char*) malloc (strlen(buf)+1); strcpy(str[0].name, buf); printf("\nВвод второй строки:\t"); gets (buf); str[1].name = (char*) malloc (strlen(buf)+1); strcpy(str[1].name, buf); printf("\nЧто получилось:\n"); for (i = 0; i<2; i++) printf("%3d\t%s\n", i+1, str[i].name); for (i = 0; i<2; i++) free (str[i].name); getchar(); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с памятью, строками и консолью.
- Объявление структуры
naww
с одним полем типа char* (указатель на строку). - Объявление массива структур
naww
на 2 элемента. - Установка локали на русскую.
- Выделение памяти под строки, используя функцию malloc.
- Копирование введенных строк в выделенную память с использованием функции strcpy.
- Ввод двух строк с помощью функции gets.
- Вывод полученных строк на экран с помощью цикла for и функции printf.
- Освобождение выделенной памяти с помощью функции free.
- Получение символа для завершения работы программы с помощью функции getchar.
- Возврат 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д