Указатель на строку в структуре - 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;
}

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

  1. Подключение необходимых библиотек для работы с памятью, строками и консолью.
  2. Объявление структуры naww с одним полем типа char* (указатель на строку).
  3. Объявление массива структур naww на 2 элемента.
  4. Установка локали на русскую.
  5. Выделение памяти под строки, используя функцию malloc.
  6. Копирование введенных строк в выделенную память с использованием функции strcpy.
  7. Ввод двух строк с помощью функции gets.
  8. Вывод полученных строк на экран с помощью цикла for и функции printf.
  9. Освобождение выделенной памяти с помощью функции free.
  10. Получение символа для завершения работы программы с помощью функции getchar.
  11. Возврат 0, чтобы указать, что программа успешно завершилась.

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


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

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

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