]> git.llucax.com Git - z.facultad/75.42/string.git/blob - ascii.cpp
1864fb8dd9de28af7fd9fcb6835f74c254a95d18
[z.facultad/75.42/string.git] / ascii.cpp
1 /* vim: set et sts=4 sw=4 fdm=indent fdn=1 fo+=t tw=80:
2  *
3  * Taller de Programación (75.42).
4  *
5  * Ejercicio Número 4:
6  * Ordena texto ASCII o Unicode.
7  *
8  * Copyleft 2003 - Leandro Lucarella <llucare@fi.uba.ar>
9  * Puede copiar, modificar y distribuir este programa bajo los términos de
10  * la licencia GPL (http://www.gnu.org/).
11  *
12  * Creado: Mon Sep 22 21:00:07 ART 2003
13  *
14  * $Id$
15  */
16
17 #include "ascii.h"
18
19 #ifdef DEBUG
20 #   include <iostream>
21 #endif
22
23 Ascii::Ascii(char c): caracter(c) {
24 #ifdef DEBUG
25     std::cerr << "En constructor de Ascii." << std::endl;
26 #endif
27 }
28
29 Ascii::Ascii(const Ascii& ascii): caracter(ascii.caracter) {
30 #ifdef DEBUG
31     std::cerr << "En constructor de copia de Ascii." << std::endl;
32 #endif
33 }
34
35 Ascii::~Ascii(void) {
36 #ifdef DEBUG
37     std::cerr << "En destructor de Ascii." << std::endl;
38 #endif
39 }
40
41 bool Ascii::is_endl(void) {
42 #ifdef DEBUG
43     std::cerr << "En Ascii::is_endl()." << std::endl;
44 #endif
45     // Si es 0xA = 10 = '\n' devuelve true.
46     return caracter == '\n';
47 }
48
49 Ascii& Ascii::operator=(const Ascii& ascii) {
50 #ifdef DEBUG
51     std::cerr << "En operator= de Ascii." << std::endl;
52 #endif
53     caracter = ascii.caracter;
54     return *this;
55 }
56
57 bool Ascii::operator<(const Ascii& ascii) {
58 #ifdef DEBUG
59     std::cerr << "En operator< de Ascii." << std::endl;
60 #endif
61     return caracter < ascii.caracter;
62 }
63
64 bool Ascii::operator==(const Ascii& ascii) {
65 #ifdef DEBUG
66     std::cerr << "En operator== de Ascii." << std::endl;
67 #endif
68     return caracter == ascii.caracter;
69 }
70
71 Ascii::operator char(void) const {
72 #ifdef DEBUG
73     std::cerr << "En cast de Ascii a char." << std::endl;
74 #endif
75     return static_cast<char>(caracter);
76 }
77
78 Ascii::operator short(void) const {
79 #ifdef DEBUG
80     std::cerr << "En cast de Ascii a short." << std::endl;
81 #endif
82     return static_cast<short>(caracter);
83 }
84
85 /// Volcado a un stream de salida.
86 std::ostream& operator<<(std::ostream& out, const Ascii& ascii) {
87 #ifdef DEBUG
88     std::cerr << "En operator<< de Ascii." << std::endl;
89 #endif
90     return out << ascii.caracter;
91 }
92
93 /// Captura desde un stream de entrada.
94 std::istream& operator>>(std::istream& in, Ascii& ascii) {
95 #ifdef DEBUG
96     std::cerr << "En operator>> de Ascii." << std::endl;
97 #endif
98     return in >> ascii.caracter;
99 }
100