Funkcja strcpy

0

Witam mam program który wypisuje datę podaną przez użytkownika w formacie dd-mm-rrrr tzn ja podaje np tak 2 2 2012 program wyświetla 2 luty 2012 z wykorzystaniem funkcji strcpy i teraz mam pytanie jak zrobić aby wyświetlał i również datę o miesiąc później tzn ja podaje 2 2 2012 a on ma mi wyświetlić 2 marzec 2012 mam już zrobiony wskaźnik do struktury data w której mam tablice z miesiącami i zmienne rok i dzień.

0

Mogę i nawet tak już robiłem tylko że mam narzucone odgórnie że mam to zrobić z wykorzystaniem wskaźników i nie mam pomysłu jak wskazać kolejny element rekordu własnie z wykorzystaniem wskaźników.

0

Pokaż mi swój kod to postaram ci pomóc.

0

O to kod:

#include <iostream>
#include <string.h>

using namespace std;

   struct data
{
   short int dzien;
   char miesiac[12];
   short int rok;
};

int main()
{
  short int n;
  char miesiace[12][12]={"Styczen","luty","Marzec","Kwiecien","Maj","Czerwiec","lipiec","Sierpien","Wrzesien","Pazdziernik","listopad","grudzien"};
  data podana;



   cout<<"Podaj dzien\n " ;
   cin>> podana.dzien;
   cout<<"Podaj miesiac\n";
   cin>> n;
   cout<<"Podaj rok";
   cin>> podana.rok;
   strcpy(podana.miesiac, miesiace[n-1]);
   cout<<"Biezaca data : " <<podana.dzien<< " " <<podana.miesiac<<" " <<podana.rok;
  
  
   

  
 cin.ignore();
 getchar();
   return 0;
}
0

jak zrobić aby wyświetlał i również datę o miesiąc później

strcpy(podana.miesiac, miesiace[n % 12]);

mam już zrobiony wskaźnik do struktury

ale że gdzie?

0
   strcpy(podana.miesiac, miesiace[n-1]);
   cout<<"Biezaca data : " <<podana.dzien<< " " << podana.miesiac<<" " <<podana.rok;
   if(n == 12) {
	   n = 0;
   }
   strcpy(podana.miesiac, miesiace[n]);
   cout<<"Biezaca data : " <<podana.dzien<< " " <<podana.miesiac<<" " <<podana.rok;;
 
0

Wskaźnik miałem ale potem jeszcze kombinowałem wiec żeby nie wysyłać wam sałaty-zamiast kodu to pousuwałem to dobra dzięki wszystkim coś nad tym popracuje jeszcze ważne ze działa tak jak chciałem :)

0

A jeszcze tak z ciekawości zapytam jak to rozwiązać właśnie z użyciem wskaźnika do struktury data?

0

Różnica jest dość spora przy użyciu wskaźników. Ale w Twoim programie składniowo już znacznie mniejsza. Użycie new i delete oraz odwołanie się do składowych przez operator ->

data * podana = new data;
podana->dzien = .....
(....)

delete podana;
0
Funktor napisał(a):

jak zrobić aby wyświetlał i również datę o miesiąc później
Jak to ma działać? Np. mając datę 31.01.2012 to "miesiąc później" będzie jaką datą?

0
adf88 napisał(a):
Funktor napisał(a):

jak zrobić aby wyświetlał i również datę o miesiąc później
Jak to ma działać? Np. mając datę 31.01.2012 to "miesiąc później" będzie jaką datą?

Oczywiście 29.02.2012 ;)

0

Dziękuje Sarrus.

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