Imported contents: kraptor_final_apr_03_2004.tar.gz
[kraptor.git] / src / krstring.c
blobb4d522bb1c1b8b8849435c5cbac8177b7cae571d
1 // --------------------------------------------------------
2 // krstring.c
3 // --------------------------------------------------------
4 // Copyright (c) 2002, Kronoman
5 // En memoria de mi querido padre
6 // --------------------------------------------------------
7 // Funciones para strings ASCII auxiliares
8 // --------------------------------------------------------
10 #ifndef KRSTRING_C
11 #define KRSTRING_C
13 #include <string.h>
15 // --------------------------------------------------------
16 // krtrim -
17 // Funcion equivalente a trim$ de qbasic, elimina
18 // los espacios adelante y atras de orig, y lo coloca en dest
19 // devuelve dest.-
20 // Es algo lenta ya que recorre varias veces la cadena
21 // dest debe tener espacio suficiente para alojar a orig!!! y un char '0' al final
22 // --------------------------------------------------------
23 char *krtrim(char *dest, const char *orig)
25 int ret, x1 = 0, x2 = 0, x3 = 0;
27 dest[0] = '\0'; // por ahora vacia
29 /* primero veo si son todos espacios... */
30 ret = -1;
31 for (x1= 0; x1 < strlen(orig); x1++) if (orig[x1] != ' ') ret = 0;
33 if (ret) return dest; /* la cadena es solo espacios... */
35 x1 = 0; // comienzo cadena
37 x2 = strlen(orig)-1;
39 // buscar cadena al final
40 while ( (orig[x2] == ' ') && (x2 >= 0) )
42 x2--;
45 if (x2 < 0) x2 = 0;
47 // buscar cadena al principio
48 while ( (orig[x1] == ' ') && (x1 <= x2 ) )
50 x1++;
53 if (x1 > strlen(orig)-1 ) x1 = strlen(orig-1);
55 // copiar
56 for (ret = x1; ret < x2+1; ret++)
58 dest[x3] = orig[ret];
59 x3++;
61 dest[x3] = '\0';
63 return dest;
65 #endif