*Zadanie* Struktura, wpisywanie, drukowanie

0

Witam, otóż mam do rozwiązania zadanie. Program działa, natomiast zastanawiam się, czy jest możliwość, aby do pola nazwa wpisać "samsung" bez korzystania z strcpy, a jedynie z operatora "->" (jak w treści). Z góry dziękuję za pomoc.

Treść: Zadeklaruj strukturę telewizor, zawierającą pola nazwa, kraj, rok i cena.
Do pola nazwa wpisz np. samsung, używając operatora pośredniego wyboru.
Do pola kraj wpisz nazwę używając funkcji strcpy.
Do pola rok wpisz z klawiatury rok produkcji.
Do pola cena wpisz, używając operatora bezpośredniego wyboru, cenę.
Wydrukuj napis "Opis telewizora" i zawartość pól używając jednej instrukcji printf.

#include <stdio.h>
#include <string.h>

struct telewizor
{
 char nazwa[8];
 char kraj[6];
 int rok,cena;
}TV;

int main()
{
 struct telewizor TV, *PtrTV;

 PtrTV= &TV;
 strcpy(PtrTV -> nazwa,"Samsung");
 strcpy(PtrTV -> kraj,"Chiny");
 printf("Wpisz rok produkcji: ");
 scanf("%d",&TV.rok);
 TV.cena = 3000;


 printf("\n%s\n%s\n%d\n%d\n ",
        TV.nazwa,
        TV.kraj,
        TV.rok,
        TV.cena);
 return 0;
}
3

W skrócie: nie, tak się kopiuje ciągi znaków w C.

2
#include <stdio.h>
#include <string.h>

struct telewizor
{
 char *nazwa;
 char *kraj;
 int rok,cena;
}TV;

void init(struct telewizor *tv,char *nazwa,char *kraj,int rok,int cena)
{
  tv->nazwa=strdup(nazwa);
  tv->kraj=strdup(kraj);
  tv->rok=rok;
  tv->cena=cena;
}

int main()
{
 struct telewizor TV;
 int rok;
 scanf("%d",&rok);
 TV.cena=3000;
 init(&TV,"Samsung","Chiny",rok,3000);

 printf("\n%s\n%s\n%d\n%d\n ",
        TV.nazwa,
        TV.kraj,
        TV.rok,
        TV.cena);
 return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1