C Standard Library Extensions
1.1
Main Page
Modules
Files
File List
cext
cxstring.h
1
/* $Id: cxstring.h,v 1.8 2011/02/21 14:15:31 rpalsa Exp $
2
*
3
* This file is part of the ESO C Extension Library
4
* Copyright (C) 2001-2011 European Southern Observatory
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
/*
22
* $Author: rpalsa $
23
* $Date: 2011/02/21 14:15:31 $
24
* $Revision: 1.8 $
25
* $Name: cpl-6_1_1 $
26
*/
27
28
#ifndef CX_STRING_H_
29
#define CX_STRING_H_ 1
30
31
#include <stdarg.h>
32
#include <string.h>
33
#include <ctype.h>
34
35
#include <cxtypes.h>
36
#include <cxmemory.h>
37
#include <cxmessages.h>
38
#include <cxutils.h>
39
40
41
CX_BEGIN_DECLS
42
43
struct
_cx_string_ {
44
45
/* <private> */
46
47
cxchar *data;
48
cxsize sz;
49
50
};
51
52
60
typedef
struct
_cx_string_
cx_string
;
61
62
63
/*
64
* Create, copy and destroy operations
65
*/
66
67
cx_string
*
cx_string_new
(
void
);
68
cx_string
*
cx_string_copy
(
const
cx_string
*);
69
cx_string
*
cx_string_create
(
const
cxchar *);
70
void
cx_string_delete
(
cx_string
*);
71
72
/*
73
* Non modifying operations
74
*/
75
76
cxsize
cx_string_size
(
const
cx_string
*);
77
cxbool
cx_string_empty
(
const
cx_string
*);
78
79
/*
80
* Data access
81
*/
82
83
const
cxchar *
cx_string_get
(
const
cx_string
*);
84
85
/*
86
* Assignment operations
87
*/
88
89
void
cx_string_set
(
cx_string
*,
const
cxchar *);
90
91
/*
92
* Modifying operations
93
*/
94
95
cx_string
*
cx_string_upper
(
cx_string
*);
96
cx_string
*
cx_string_lower
(
cx_string
*);
97
cx_string
*
cx_string_trim
(
cx_string
*);
98
cx_string
*
cx_string_rtrim
(
cx_string
*);
99
cx_string
*
cx_string_strip
(
cx_string
*);
100
101
/*
102
* Inserting and removing elements
103
*/
104
105
cx_string
*
cx_string_prepend
(
cx_string
*,
const
cxchar *);
106
cx_string
*
cx_string_append
(
cx_string
*,
const
cxchar *);
107
cx_string
*
cx_string_insert
(
cx_string
*, cxssize,
const
cxchar *);
108
cx_string
*
cx_string_erase
(
cx_string
*, cxssize, cxssize);
109
cx_string
*
cx_string_truncate
(
cx_string
*, cxsize);
110
111
/*
112
* Comparison functions
113
*/
114
115
cxbool
cx_string_equal
(
const
cx_string
*,
const
cx_string
*);
116
cxint
cx_string_compare
(
const
cx_string
*,
const
cx_string
*);
117
cxint
cx_string_casecmp
(
const
cx_string
*,
const
cx_string
*);
118
cxint
cx_string_ncasecmp
(
const
cx_string
*,
const
cx_string
*, cxsize);
119
120
/*
121
* I/O functions
122
*/
123
124
cxint
cx_string_sprintf
(
cx_string
*,
125
const
cxchar *, ...) CX_GNUC_PRINTF(2, 3);
126
cxint
cx_string_vsprintf
(
cx_string
*,
127
const cxchar *, va_list) CX_GNUC_PRINTF(2, 0);
128
129
/*
130
* Debugging utilities
131
*/
132
133
void
cx_string_print
(const cx_string *);
134
135
CX_END_DECLS
136
137
#endif
/* CX_STRING_H */
Generated on Thu Jun 21 2012 09:30:03 for C Standard Library Extensions by
1.8.1.1