GRASS GIS 7 Programmer's Manual
7.8.4(2020)-exported
commas.c
Go to the documentation of this file.
1
2
/*!
3
* \file lib/gis/commas.c
4
*
5
* \brief GIS Library - Comma string functions.
6
*
7
* (C) 2001-2014 by the GRASS Development Team
8
*
9
* This program is free software under the GNU General Public License
10
* (>=v2). Read the file COPYING that comes with GRASS for details.
11
*
12
* \author GRASS GIS Development Team
13
*
14
* \date 1999-2014
15
*/
16
17
#include <string.h>
18
#include <grass/gis.h>
19
20
21
/**
22
* \brief Inserts commas into a number string.
23
*
24
* Examples:
25
*
26
* - 1234567 becomes 1,234,567
27
* - 1234567.89 becomes 1,234,567.89
28
* - 12345 becomes 12,345
29
* - 1234 stays 1234
30
*
31
* <b>Note:</b> Does not work with negative numbers.
32
*
33
* \param[in,out] buf string
34
* \return 1 if no commas inserted
35
* \return 0 if commas inserted
36
*/
37
38
int
G_insert_commas
(
char
*buf)
39
{
40
char
number[100];
41
int
i, len;
42
int
comma;
43
44
while
(*buf ==
' '
)
45
buf++;
46
strcpy(number, buf);
47
for
(len = 0; number[len]; len++)
48
if
(number[len] ==
'.'
)
49
break
;
50
if
(len < 5)
51
return
1;
52
53
i = 0;
54
if
((comma = len % 3)) {
55
while
(i < comma)
56
*buf++ = number[i++];
57
*buf++ =
','
;
58
}
59
60
for
(comma = 0; number[i]; comma++) {
61
if
(number[i] ==
'.'
)
62
break
;
63
if
(comma && (comma % 3 == 0))
64
*buf++ =
','
;
65
*buf++ = number[i++];
66
}
67
while
(number[i])
68
*buf++ = number[i++];
69
*buf = 0;
70
71
return
0;
72
}
73
74
75
/**
76
* \brief Removes commas from number string.
77
*
78
* Examples:
79
* - 1,234,567 becomes 1234567<br>
80
* - 1,234,567.89 becomes 1234567.89<br>
81
* - 12,345 becomes 12345<br>
82
* - 1234 stays 1234
83
*
84
* \param[in,out] buf string
85
* \return
86
*/
87
88
void
G_remove_commas
(
char
*buf)
89
{
90
char
*
b
;
91
92
for
(
b
= buf; *
b
;
b
++)
93
if
(*
b
!=
','
)
94
*buf++ = *
b
;
95
96
*buf = 0;
97
}
G_remove_commas
void G_remove_commas(char *buf)
Removes commas from number string.
Definition:
commas.c:88
b
double b
Definition:
driver/set_window.c:5
G_insert_commas
int G_insert_commas(char *buf)
Inserts commas into a number string.
Definition:
commas.c:38
gis
commas.c
Generated on Mon Oct 5 2020 08:56:03 for GRASS GIS 7 Programmer's Manual by
1.8.18