]> git.llucax.com Git - z.facultad/75.42/calculadora.git/blob - strutil.c
Versión preliminar del programa del TP. Falta evaluar ecuaciones.
[z.facultad/75.42/calculadora.git] / strutil.c
1 /* vim: set et sts=4 sw=4 fdm=indent fdl=1 fdn=0 fo+=t tw=80:
2  *
3  * Taller de Programación (75.42).
4  *
5  * Ejercicio Número 2:
6  * Programa calculadora.
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: lun sep 15 18:12:35 ART 2003
13  *
14  * $Id$
15  */
16
17 #include "strutil.h"
18 #include "parser_common.h"
19 #include <stdlib.h>
20 #include <string.h>
21
22 #include "memdebug_debugger.h"
23
24 char* strutil_copy_fragment(const char* orig, size_t start, size_t len) {
25     /* Reservo el espacio (incluyendo el caracter nulo). */
26     char* new = malloc(sizeof(char) * (len + 1));
27     if (new) {
28         /* Copio el fragmento. */
29         strncpy(new, orig + start, len);
30         /* Termino la cadena. */
31         new[len] = '\0';
32     }
33     return new;
34 }
35
36 char* strutil_copy_stripspaces(const char* orig, size_t len) {
37     size_t i = 0;
38     size_t j = 0;
39     /* Reservo el espacio (incluyendo el caracter nulo). */
40     char* new = malloc(sizeof(char) * (len + 1));
41     if (new) {
42         /* Copio caracteres que no sean espacios. */
43         for (i = 0; i < len; i++) {
44             if (!is_space(orig[i])) {
45                 new[j++] = orig[i];
46             }
47         }
48         /* Termino la cadena. */
49         new[j] = '\0';
50     }
51     return new;
52 }
53