|
[ Marko Simulak @ 24.11.2012. 18:06 ] @
| Kako da ispisem STRING iz enum-a?
Code:
/*
* Meseci.cpp
* Nasumican odabir i ispis meseca
* Created on: Nov 24, 2012
* Author: ***
*/
#include <stdio.h>
#include <time.h> //potrebno za srand
#include <stdlib.h> //potrebno za rand
int main(){
enum Mesec
{
JANUAR=1,FEBRUAR,MART,APRIL,MAJ,JUN,JULI,AVGUST,
SEPEMBAR,OKTOBAR,NOVEMBAR,DECEMBAR
};
srand(time(NULL)); //random definisanje
int x = (rand() % 12)+1; // brojeva [1,12]
Mesec m = Mesec(x);
printf("%d\n",m); //radnom mi ispisuje, ali kao int, kada stavim %s stavi mi upozorenje da mora biti char*..i nista ne ispise
return 0;
}
|
[ X Files @ 24.11.2012. 18:40 ] @
enum ne uključuju u kod i STRING kao informaciju. To je samo za tebe olakšica pri programiranju. Ako želiš stringove, onda treba da ih ugradiš u kod, na primer ovako:
// na osnovu tvog koda, netestirano
Code:
// ...
char *meseci[]={"JANUAR","FEBRUAR","MART","APRIL","MAJ","JUN","JULI","AVGUST","SEPEMBAR","OKTOBAR","NOVEMBAR","DECEMBAR"};
// ...
printf("%s\n",meseci[m-1]);
// ...
Ali se tada pitamo, šta će nam enum u ovom primeru, kad indeksi već idu redom :)
[ Marko Simulak @ 24.11.2012. 18:53 ] @
Zadatak glasi >> Napisati program koji će nasumice odabrati mesec u godini, a zatim ga prikazati na ekranu. Koristiti
enumeraciju za predstavljanje meseca u godini.
Pa zbog tog "enumeraciju" pretpostavljam da treba da se koristi enum.
A kada zapisem tako sa char* .... radi ok, samo ne znam da li smem tako da uradim, provericu :D
Hvala
[ X Files @ 24.11.2012. 19:18 ] @
Citat: Marko SimulakA kada zapisem tako sa char* .... radi ok, samo ne znam da li smem tako da uradim, provericu :D
Šalim se za enum :) Kapiram da "enum" trenutno proučavate i zato radite zadatke u vezi njega.
Ako ste radili recimo switch i case onda možeš da zaobiđeš char*, tako što ćeš u switch uhvatiti redni broj, a ispis servisirati preko case.
char* možeš da zaobiđeš i ovako:
char meseci[][12]={"JANUAR","FEBRUAR","MART","APRIL","MAJ","JUN","JULI","AVGUST","SEPEMBAR","OKTOBAR","NOVEMBAR","DECEMBAR"};
[ Marko Simulak @ 24.11.2012. 19:50 ] @
Hah :D, pa da..
Uradio sam na 2 nacina, jedan ce biti ispravan valjda :D
Code:
/*
* Meseci.cpp
* Nasumican odabir i ispis meseca
* Created on: Nov 24, 2012
* Author: ***
*/
#include <stdio.h>
#include <time.h> //potrebno za srand
#include <stdlib.h> //potrebno za rand
int main(){
enum Mesec
{
JANUAR=1,FEBRUAR,MART,APRIL,MAJ,JUN,JULI,AVGUST,
SEPEMBAR,OKTOBAR,NOVEMBAR,DECEMBAR
};
srand(time(NULL)); //random definisanje
int x = (rand() % 12)+1; // brojeva [1,12]
Mesec m = Mesec(x);
printf("%d\n",m); //daje int
//********************************
char* mesec[]={"JANUAR","FEBRUAR","MART","APRIL","MAJ",
"JUN","JULI","AVGUST","SEPEMBAR","OKTOBAR","NOVEMBAR",
"DECEMBAR"};
printf("%s\n",mesec[m-1]);
//********************************
switch (m)
{
case 1: printf("Januar");
break;
case 2: printf("Februar");
break;
case 3: printf("Mart");
break;
case 4: printf("April");
break;
case 5: printf("Maj");
break;
case 6: printf("Jun");
break;
case 7: printf("Juli");
break;
case 8: printf("Avgust");
break;
case 9: printf("Septembar");
break;
case 10: printf("Oktobar");
break;
case 11: printf("Novembar");
break;
case 12: printf("Decembar");
break;
}
return 0;
}
Copyright (C) 2001-2024 by www.elitesecurity.org. All rights reserved.
|