summaryrefslogtreecommitdiff
path: root/man/str.3
blob: c8643ed8605ecf0ed1b67bb6c9d6fb3861edeb1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
.TH qlibs: str 3
.SH NAME
str \- string evaluation and comparision (for allocated strings)
.SH SYNTAX
.B #include  \(dqstr.h\(dq

unsigned int \fBstr_copy\fR(char *\fIdst\fR, const char *\fIsrc\fR);
.br
unsigned int \fBstr_copyb\fR(char *\fIdst\fR, const char *\fIsrc\fR, unsigned int \fIlen\fR);
.br
unsigned int \fBstr_chr\fR(const char *\fIs\fR, int \fIc\fR);
.br
unsigned int \fBstr_rchr\fR(const char *\fIs\fR, int \fIc\fR);
.br
unsigned int \fBstr_diff\fR(const char *\fIs\fR, const char *\fIt\fR);
.br
unsigned int \fBstr_diffn\fR(const char *\fIs\fR, const char *\fIt\fR, unsigned int \fIlen\fR);
.br
unsigned int \fBstr_equal\fR(const char *\fIs\fR, const char *\fIt\fR);
.br
unsigned int \fBstr_len\fP(const char *\fIs\fR);
.br
unsigned int \fBstr_starts\fP(const char *\fIdst\fR, const char *\fIsrc\fR);
.br
char *\fBstr_append\fP(char *\fIdst\fR, const char *\fIs\fR);
.SH DESCRIPTION
\fBstr_copy\fR copies \fIsrc\fR into \fIdst\fR up to the first occurance of \\0 while including it. 
It returns the number of bytes written. 
If \fIdst\fR is smaller than \fIsrc\fR, \fBstr_copy\fR fills up \fIdst\fR 
to its allocated size and returns the number of bytes it would have be written.
\fBstr_copyb\fR copies \fIlen\fR bytes from \fIsrc\fR into \fIdst\fR.

\fBstr_chr\fR and \fBstr_rchr\fR searches for a single character in a string 
(from left-to-right or from right-to-left) and returns the position of 
the \fIfirst\fR occurrance of \fIc\fR or the length \fIlen\fR of \fIs\fR.

\fBstr_len\fR determines the length of a string. It returns the position 
of the first occurance of \\0 in \fIs\fR.

\fBstr_diff\fR, \fBstr_diffn\fR, and \fBstr_equal\fR compare two strings.
\fBstr_diff\fR and \fBstr_diffn\fR returns negative, zero or positive, depending
whether the string \fIs\fR[0], \fIs\fR[1], ..., \fIs\fR[n]=='\\0' is
ASCII lexicographically smaller than, equal to, or greater than the string
\fIt\fR[0], \fIt\fR[1], ..., \fIt\fR[m-1]=='\\0'. If the strings are different,
both functions do not read bytes past the first difference.
\fBstr_diffn\fR considers the strings equal if the first \fIn\fR characters match.

\fBstr_equal\fR returns 1, if \fIs\fR and \fIt\fR match up to and including the
first occurance of \\0 or returns 0 otherwise. It is the opposite of \fBstr_diff\fR.

\fBstr_start\fR compares the two strings from the begining. 
It returns 1 if \fIt\fR is a prefix of \fIs\fR or 0 otherwise.

\fB*str_append\fR appends a single byte \fIs\fR to \fIout\fR given \fIout\fR
is allocated with enough space. 
.SH "NOTE"
For the \fBstr_copy*\fR and \fB*str_append\fP commands \fIdst\fR 
has to have a  preallocated space. 
Otherwise the result may be unexpected. 
.SH "SEE ALSO"
byte(3), stralloc(3)