A sphere with three ocean waves in differing shades of blue. Next to the sphere, there is the bolded text "Ocean Color". Under that, there are two acronyms, separated by a vertical pipe: OB.DAAC (Ocean Biology Distributed Active Archive Center) and OBPG (Ocean Biology Processing Group).
Lorem
ipsum
dolor
sit
amet
Toggle navigation
Ocean Color Science Software
Jump to content
ocssw
V2022
web
ocssw
ocssw_src
src
auto_qc
fmt_check
s_parse.c
Go to the documentation of this file.
1
#include <string.h>
2
#include "
fmt_check.h
"
3
4
char
*
s_parse
(
char
*
str
,
int
enc)
5
/*******************************************************************
6
7
s_parse
8
9
purpose: along the lines of strtok, s_parse parses a string
10
using the space as a delimiter as well as an enclosing
11
character like " or ' to return substrings
12
13
Returns type: char * the pointer to the next substring or NULL
14
if string is exhausted
15
16
Parameters: (in calling order)
17
Type Name I/O Description
18
---- ---- --- -----------
19
char* str I input string on first call
20
NULL for subsequent calls
21
int enc I enclosing character such as
22
' or "
23
24
Modification history:
25
Programmer Date Description of change
26
---------- ---- ---------------------
27
W. Robinson 10-Mar-1995 Original development
28
29
*******************************************************************/
{
30
static
char
*ptr;
31
char
*s_ptr;
32
int
start
, ienc;
33
34
/* get the location of this string locally */
35
if
(
str
!=
NULL
)
36
ptr =
str
;
37
/* 1 - get to a character which is non blank or enclosing */
38
start
= 0;
39
ienc = 0;
40
do
{
41
if
(*ptr == 0)
42
return
NULL
;
43
else
if
(*ptr == enc) {
44
ienc = 1;
45
s_ptr = ptr + 1;
46
start
= (*(ptr + 1) == 0) ? 0 : 1;
47
}
else
if
(*ptr !=
' '
) {
48
start
= 1;
49
s_ptr = ptr;
50
}
51
ptr++;
52
}
while
(
start
== 0);
53
54
/* find the next blank or, if a quote the ending quote */
55
56
start
= 0;
57
do
{
58
if
(*ptr == 0)
59
return
s_ptr;
60
else
if
(ienc == 1 && *ptr == enc) {
61
*ptr++ = 0;
62
return
s_ptr;
63
}
else
if
(ienc == 0 && *ptr ==
' '
) {
64
*ptr++ = 0;
65
return
s_ptr;
66
}
else
67
ptr++;
68
}
while
(
start
== 0);
69
70
return
NULL
;
71
72
}
73
74
75
76
77
78
79
80
fmt_check.h
NULL
#define NULL
Definition:
decode_rs.h:63
s_parse
char * s_parse(char *str, int enc)
Definition:
s_parse.c:4
seadasutils.aquarius_utils.start
start
Definition:
aquarius_utils.py:27
str
Definition:
aerosol.c:136
str
#define str(s)
Definition:
leveltwo2csv-main.c:19