View difference between Paste ID: VKZYfFFe and 7Tmn1EfS
SHOW: | | - or go back to the newest paste.
1
#include<stdio.h>
2
#include<stdlib.h>
3
4
#define LANGUAGE_AMOUNT 2
5
#define MESSAGE_AMOUNT 3
6
7
enum Languages
8
{
9
	English,
10
	Spanish
11
};
12
13
enum Messages
14
{
15
	HelloWorld,
16
	OutOfMemory,
17
	FileNotFound
18
};
19
20
const char* get_message(enum Languages language, enum Messages message) {
21
22-
/* The messages to print */
22+
23-
/* English */
23+
	const char* messages[LANGUAGE_AMOUNT * MESSAGE_AMOUNT];
24-
#define EngHW "HelloWorld"
24+
	int index;
25-
#define EngOOM "OutOfMemory"
25+
26-
#define EngFNF "FileNotFound"
26+
	/* The messages to print */
27-
/* Spanish */
27+
	/* English */
28-
#define SpaHW "HolaMundo"
28+
	messages[0] = "HelloWorld";
29-
#define SpaOOM "MemoriaAgotada"
29+
	messages[1] =  "OutOfMemory";
30-
#define SpaFNF "ArchivoNoEncontrado"
30+
	messages[2] = "FileNotFound";
31
	/* Spanish */
32
	messages[3] = "HolaMundo";
33
	messages[4] = "MemoriaAgotada";
34-
	if (language == English) {
34+
	messages[5] = "ArchivoNoEncontrado";
35-
		switch(message) {
35+
36-
			case HelloWorld:
36+
	index = language*MESSAGE_AMOUNT + message;
37-
				result = EngHW;
37+
38-
				break;
38+
	return messages[index];
39-
			case OutOfMemory:
39+
40-
				result = EngOOM;
40+
41-
				break;
41+
42-
			case FileNotFound:
42+
43-
				result = EngFNF;
43+
44-
				break;
44+
45
	enum Messages message;
46
	
47
	int input_lang;
48-
	if (language == Spanish) {
48+
49-
		switch(message) {
49+
50-
			case HelloWorld:
50+
51-
				result = SpaHW;
51+
52-
				break;
52+
53-
			case OutOfMemory:
53+
54-
				result = SpaOOM;
54+
55-
				break;
55+
56-
			case FileNotFound:
56+
57-
				result = SpaFNF;
57+
58-
				break;
58+
59
			scanf("%i", &input_mess);
60
			
61
			if (input_mess < MESSAGE_AMOUNT) {
62-
	return result;
62+
63
				message = (enum Messages) input_mess;
64
				printf("MENSAJE OBTENIDO: %s\n", get_message(language, message) );
65
			}
66
		}
67
	}
68
69
	return 0;
70
}