Массив char в структуре - C (СИ)

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

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

Привет, разбираюсь вот со структурами. Уперся в заполнение массивы char, вложенные в структуру. А именно не знаю как правильно сей массив заполнить. В первом случае как массив указателей мне удалось заполнить его следующим образом:
#include <stdio.h>
#include <stdlib.h>
#define N 10

struct str
{
    char *a[N];
};
 
int main()
{
    struct str new1;
    *new1.a="aloha";
 
    printf("%s!\n", *new1.a);
    return 0;
}
Назревает вопрос- как заполнить массив указателей, используя скажем gets(new1.a) или fgets(new1.a,N, stdin). И вообще, как видит компилятор процесс заполнения массива указателей? Вопрос 2) если у меня обычный массив, такое заполнение уже не катит. Выбивает ошибку.
#include <stdio.h>
#include <stdlib.h>
#define N 10

struct str
{
    char a[N];
};
 
int main()
{
    struct str new1;
    new1.a="aloha";
 
    printf("%s!\n", new1.a);
    return 0;
}
Возможно я не различаю разницы между обычной символьной строкой и символьной строкой, вложенной в структуру? И аналогичный вопрос, как видит компилятор заполнение указанной строки?

Решение задачи: «Массив char в структуре»

textual
Листинг программы
strcpy (new1.a, "aloha");

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

  1. В данном коде происходит копирование строки aloha в поле 'a' структуры 'new1'.
  2. Функция 'strcpy' используется для копирования строки.
  3. Значение переменной 'new1.a' будет равно aloha.

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


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

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

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