---
name: "explode"
section: "3"
platform: "linux"
package: "libcgi-dev"
version: "1.0-6"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/libcgi_string"
---

# explode(3)

Part of [libcgi\_string(3)](/libcgi_string/3.md).

## NAME

Strings -

## Detailed Description

General string manipulation and utilities functions.

### Functions

char \* **str\_base64\_encode** (char \*str)\
 *Encodes a given tring to its base64 form.* char \* **str\_base64\_decode** (char \*str)\
 *Decode a base64 encoded string.* char \* **addnslashes** (char \*s, int n)\
 *Same to* **addslashes()***, except that this one only do the action while 'n' is great than 0.* char \* **addslashes** (char \*s)\
 *Add slashes to a string when necessary.* char \* **stripnslashes** (char \*s, int n)\
 *Strip no more than 'n' slashes from a string.* char \* **stripslashes** (char \*str)\
 *Strip slashes from a string.* void **ltrim** (char \*str)\
 *Strip left white spaces from a string.* void **rtrim** (char \*str)\
 *Strip right white spaces from a string.* void **trim** (char \*str)\
 *Strip both left and right white spaces from a string.* char \* **substr** (char \*src, const int start, const int count)\
 *Copy part of a string.* char \*\* **explode** (char \*src, const char \*token, int \*total)\
 *Create an array from a string separated by some special char.* char \* **str\_nreplace** (char \*src, const char \*delim, const char \*with, int n)\
 *Replace characteres in a string, but not more than 'n'.* char \* **str\_replace** (char \*str, const char \*delim, const char \*with)\
 *Replace characteres in a string.* int **strnpos** (char \*s, char \*ch, unsigned int count)\
 *Returns the position of a character in a string, but parses no more that 'n' chars.* int **strpos** (char \*s, char \*ch)\
 *Returns the position of a character in a string.* char \* **strdel** (char \*s, int start, int count)\
 *Delete characters from a string.* char \* **recvline** (FILE \*s)\
 *Reads an entire line.* char \* **make\_string** (char \*s,...)\
 *Makes a string.*

## Function Documentation

### char\* addnslashes (char \* s, int n)

Same to **addslashes()**, except that this one only do the action while 'n' is great than 0.**Parameters:**

*s* String to parse \
 *n* Number of characters to work with.

**See also:**

**addslashes()**

```
 char *name = 'My test string is called ´foobar´';
 puts(name); // will display My test string is called 'foobar'
 name = addnslashes(name, 31);
 puts(name); // will display My test string is called ´foobar'
```

### char\* addslashes (char \* s)

Add slashes to a string when necessary.Adds a '\\' in every quote ( ' ), apostrophe ( ' ) or backslash ( \\ ) It's useful when working with databases, for example, because someone can try insert this caracters to try hack the application...

**Parameters:**

*\*s* String to parse

**Returns:**

The new string, with slashes

**See also:**

stripslashes, addnslashes

```
 char *name = 'My test string is called ´foobar´';
 puts(name); // will display My test string is called 'foobar'
 name = addslashes(name);
 puts(name); // will display My test string is called ´foobar´
```

### char\*\* explode (char \* src, const char \* token, int \* total)

Create an array from a string separated by some special char.Divides the src string in pieces, each delimited by token and storing the total of pieces in total

**Parameters:**

*src* String to parse \
 *token* Character delimiter to search. \
 *total* An integer variable passed as reference, which stores the total of itens of the array

**Returns:**

The array, where each item is one separeted by token

```
  char **pieces;
  char *name = 'This,is,a,string,of,test';
  int total, i;
  pieces = explode(name, ',', &total);
  for (i = 0; i < total; i++)
        printf('Piece %d: %s0, i, *(pieces+i));
```

### void ltrim (char \* str)

Strip left white spaces from a string.**Parameters:**

*str* String to parse

**Returns:**

The new string, without left spaces

**Author:**

Original code was contribuition by Erik Jansson

**See also:**

rtrim, trim

```
 char *s = '     String with spaces    ';
 printf('_%s_0, s);
 s = ltrim(s);
 printf('_%s_0, s);
```

### char\* make\_string (char \* s, ...)

Makes a string.Works like printf(), with the difference that it returns a string that is the concatenation of the values passed as parameter.

**Parameters:**

*\*s* Inicial String and optionally formatation parameters ( just s is allowed )

**Returns:**

The new String

```
 char *sql = make_string('INSERT INTO myTable VALUES ('%s', '%s', '%s')', varValue1, varValue2, varValue3);
```

**Todo**

String limits/error checking

### char\* recvline (FILE \* s)

Reads an entire line.Reads a line from the file specified by the file pointer passed as parameter. This function is intead to replace the non-portable GNU getline() function.

**Parameters:**

*s* File pointer to the file to read from.

**Returns:**

String containing the line read or NULL if no more line are available

**Author:**

Robert Csok

### void rtrim (char \* str)

Strip right white spaces from a string.**Parameters:**

*str* String to parse

**Returns:**

The new string, without left spaces

**Author:**

Original code was contribuition by Erik Jansson

**See also:**

ltrim, trim

```
 char *s = '     String with spaces    ';
 printf('_%s_0, s);
 s = rtrim(s);
 printf('_%s_0, s);
```

### char\* str\_base64\_decode (char \* str)

Decode a base64 encoded string.**Parameters:**

*\*str* Encoded String to decode

**Returns:**

The decoded string

**See also:**

**str\_base64\_encode**

### char\* str\_base64\_encode (char \* str)

Encodes a given tring to its base64 form.**Parameters:**

*\*str* String to convert

**Returns:**

Base64 encoded String

**See also:**

**str\_base64\_decode**

### char\* str\_nreplace (char \* src, const char \* delim, const char \* with, int n)

Replace characteres in a string, but not more than 'n'.Replace all occourences of \*delim on \*src with characteres pointed by \*with, stopping after 'n' char.

**Parameters:**

*\*src* String to parse \
 *\*delim* Character to search that will be replaced \
 *with* String to replace with \
 *n* Maximum number of chars to parse

**Returns:**

The new string

**See also:**

**str\_replace**

```
  char *linux = 'Linux C';
  linux = str_nreplace(linux, 'C', 'Cool', strlen(linux));
  puts(linux);
 //  -- OR --
  char *name = 'rAfAel steil';
  name = str_nreplace(name, 'A', 'a', 3);
  puts(name);
```

### char\* str\_replace (char \* str, const char \* delim, const char \* with)

Replace characteres in a string.Replace all occourences of \*delim on \*src with characteres pointed by \*with. The problem with the folowing code is that the function only searches for the first caracter of \*delim, ingoring the rest. Other problem is speed relacioned: note that the function ever compare the length of \*with to do the correct action.

**Parameters:**

*src* String to parse \
 *delim* Character to search that will be replaced \
 *with* String to replace with

**Returns:**

The new string

**See also:**

**str\_nreplace**

```
  char *linux = 'Linux C';
  linux = str_replace(linux, 'C', 'Cool');
  puts(linux);
 //  -- OR --
  char *name = 'rAfAel steil';
  name = str_replace(name, 'A', 'a');
  puts(name);
```

### char\* strdel (char \* s, int start, int count)

Delete characters from a string.Delete count characters of s, starting in start

**Parameters:**

*s* String to search \
 *start* Initial offset to begin search \
 *count* Number of characteres to delete

**Returns:**

The new string

**See also:**

strndel()

```
  *txt = 'Some text to test anything';
  puts(txt);
  txt = strdel(txt, 2, 8);
  puts(txt);
```

### char\* stripnslashes (char \* s, int n)

Strip no more than 'n' slashes from a string.Strip the backslash character ( \\ ) from a string, stopping after 'n' char

**Parameters:**

*s* String to parse \
 *n* Maximum number of chars to parse

**Returns:**

The new string, without slashes

**See also:**

addslashes, stripslashes

```
 char *name = 'My another string is called \´blablabla\´';
 puts(name); // will display My another string is called ´blablabla´
 name = stripslashes(name, 33);
 puts(name); // will display My another string is called 'blablabla´
```

### char\* stripslashes (char \* str)

Strip slashes from a string.Strip the backslash character ( \\ ) from a string

**Parameters:**

*s* String to parse

**Returns:**

The new string, without slashes

**See also:**

addslashes, stripnslashes

```
 char *name = 'My another string is called \´blablabla\´';
 puts(name); // will display My another string is called ´blablabla´
 name = stripslashes(name);
 puts(name); // will display My another string is called 'blablabla'
```

### int strnpos (char \* s, char \* ch, unsigned int count)

Returns the position of a character in a string, but parses no more that 'n' chars.**Parameters:**

*s* String where the search will be done \
 *ch* Character to search \
 *count* Maximum number of chars to parse before exiting the function

**See also:**

**strpos()**

### int strpos (char \* s, char \* ch)

Returns the position of a character in a string.**Parameters:**

*s* String where the search will be done \
 *ch* Character to search \
 *count* Maximum number of ch to search

**See also:**

**strnpos()**

### char\* substr (char \* src, const int start, const int count)

Copy part of a string.Copy count characters from src, starting from start

**Parameters:**

*src* String to copy from \
 *start* Initial offset \
 *count* Number of chars to copy

**Returns:**

The new string

```
 char *part, *str = 'Test one, test two';
 part = substr(str, 1, 5);
 puts(part); // -> est o
```

### void trim (char \* str)

Strip both left and right white spaces from a string.**Parameters:**

*str* String to parse

**Returns:**

The new string, without left spaces

**Author:**

Original code was contribuition by Erik Jansson

**See also:**

ltrim, trim

```
 char *s = '     String with spaces    ';
 printf('_%s_0, s);
 s = trim(s);
 printf('_%s_0, s);
```
