strfuncs.h
Go to the documentation of this file.
/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */
/* ====================================================================
* Copyright (c) 1995-2004 Carnegie Mellon University. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* This work was supported in part by funding from the Defense Advanced
* Research Projects Agency and the National Science Foundation of the
* United States of America, and the CMU Sphinx Speech Consortium.
*
* THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND
* ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY
* NOR ITS EMPLOYEES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* ====================================================================
*
*/
#ifndef __SB_STRFUNCS_H__
#define __SB_STRFUNCS_H__
#include <stdarg.h>
/* Win32/WinCE DLL gunk */
#include <sphinxbase/sphinxbase_export.h>
#include <sphinxbase/prim_type.h>
#ifdef __cplusplus
extern "C" {
#endif
#if 0
/* Fool Emacs. */
}
#endif
SPHINXBASE_EXPORT
char *string_join(const char *base, ...);
enum string_edge_e {
STRING_START,
STRING_END,
STRING_BOTH
};
SPHINXBASE_EXPORT
char *string_trim(char *string, enum string_edge_e which);
SPHINXBASE_EXPORT
double atof_c(char const *str);
SPHINXBASE_EXPORT
uint32 utf8_decode(uint32 *state, uint32 *codep, uint32 *byte);
/* FIXME: Both of these string splitting functions basically suck. I
have attempted to fix them as best I can. (dhuggins@cs, 20070808) */
SPHINXBASE_EXPORT
int32 str2words (char *line,
char **wptr,
int32 n_wptr
);
SPHINXBASE_EXPORT
int32 nextword (char *line,
const char *delim,
char **word,
char *delimfound
);
#ifdef __cplusplus
}
#endif
#endif /* __SB_STRFUNCS_H__ */
STRING_START
Beginning of string.
Definition: strfuncs.h:71
prim_type.h
Basic type definitions used in Sphinx.
atof_c
SPHINXBASE_EXPORT double atof_c(char const *str)
Locale independent version of atof().
Definition: strfuncs.c:56
STRING_BOTH
Both ends of string.
Definition: strfuncs.h:73
STRING_END
End of string.
Definition: strfuncs.h:72
str2words
SPHINXBASE_EXPORT int32 str2words(char *line, char **wptr, int32 n_wptr)
Convert a line to an array of "words", based on whitespace separators.
Definition: strfuncs.c:115
string_join
SPHINXBASE_EXPORT char * string_join(const char *base,...)
Concatenate a NULL-terminated argument list of strings, returning a newly allocated string...
Definition: strfuncs.c:62
nextword
SPHINXBASE_EXPORT int32 nextword(char *line, const char *delim, char **word, char *delimfound)
Yet another attempt at a clean "next-word-in-string" function.
Definition: strfuncs.c:158
string_trim
SPHINXBASE_EXPORT char * string_trim(char *string, enum string_edge_e which)
Remove whitespace from a string, modifying it in-place.
Definition: strfuncs.c:89
string_edge_e
string_edge_e
Which end of a string to operate on for string_trim().
Definition: strfuncs.h:70