FrontISTR
5.7.0
Large-scale structural analysis program with finit element method
hecd_util.cpp
Go to the documentation of this file.
1
/*****************************************************************************
2
* Copyright (c) 2019 FrontISTR Commons
3
* This software is released under the MIT License, see LICENSE.txt
4
*****************************************************************************/
5
/*
6
hecd_util ver.1.0
7
*/
8
9
#include "
hecd_util.h
"
10
11
namespace
hecd_util
{
12
13
void
cleanup_token
(
char
*s) {
14
char
buff[256];
15
cleanup_token
(s, buff);
16
strcpy(s, buff);
17
}
18
19
void
cleanup_token
(
char
*src,
char
*dest) {
20
#define is_skip_char(x) \
21
(x == ' ' || x == '=' || x == '\t' || x == '\r' || x == '\n')
22
char
*s = src;
23
24
while
(*s &&
is_skip_char
(*s)) s++;
25
26
char
*d = dest;
27
28
while
(*s && !
is_skip_char
(*s)) {
29
*d = *s;
30
d++;
31
s++;
32
}
33
34
*d = 0;
35
}
36
37
void
toupper
(
char
*s) {
38
while
(*s) {
39
*s = (char)::
toupper
(*s);
40
s++;
41
}
42
}
43
44
void
toupper
(
const
char
*src,
char
*dest) {
45
char
*s = (
char
*)src;
46
47
while
(*s) {
48
*dest = (char)::
toupper
(*s);
49
s++;
50
dest++;
51
}
52
53
*dest = 0;
54
}
55
56
void
tolower
(
char
*s) {
57
while
(*s) {
58
*s = (char)::
tolower
(*s);
59
s++;
60
}
61
}
62
63
void
tolower
(
const
char
*src,
char
*dest) {
64
char
*s = (
char
*)src;
65
66
while
(*s) {
67
*dest = (char)::
tolower
(*s);
68
s++;
69
dest++;
70
}
71
72
*dest = 0;
73
}
74
75
void
remove_cr
(
char
*s) {
76
while
(*s) {
77
if
(*s ==
'\r'
|| *s ==
'\n'
) {
78
*s = 0;
79
return
;
80
}
81
82
s++;
83
}
84
}
85
86
// note)
87
// I/O of HEC-MW does not support '1e+2' formatted number.
88
// Then ftos converts '1e+2' to '1.0e+2'
89
90
void
ftos
(
double
x,
char
*s) {
91
char
buff[256];
92
sprintf(buff,
"%.10lg"
, x);
93
char
*p = buff;
94
bool
fg_dot =
false
;
95
96
while
(*p) {
97
if
(*p ==
'.'
) {
98
fg_dot =
true
;
99
100
}
else
if
(*p ==
'e'
|| *p ==
'E'
) {
101
if
(!fg_dot) {
102
*s =
'.'
;
103
s++;
104
*s =
'0'
;
105
s++;
106
}
107
}
108
109
*s = *p;
110
p++;
111
s++;
112
}
113
114
*s = 0;
115
}
116
117
}
// end of namespace hecd_util
hecd_util::toupper
void toupper(char *s)
Definition:
hecd_util.cpp:40
hecd_util::cleanup_token
void cleanup_token(char *s)
Definition:
hecd_util.cpp:16
hecd_util::remove_cr
void remove_cr(char *s)
Definition:
hecd_util.cpp:78
hecd_util::tolower
void tolower(char *s)
Definition:
hecd_util.cpp:59
is_skip_char
#define is_skip_char(x)
hecd_util.h
hecd_util::ftos
void ftos(double x, char *s)
Definition:
hecd_util.cpp:93
hecd_util
Definition:
hecd_util.cpp:11
fistr1
tools
neu2fstr
HECD
hecd_util.cpp
Generated by
1.8.17