Main Page Modules Related Pages

# 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: %s\n", 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_\n", s);
     s = ltrim(s);
     printf("_%s_\n", 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_\n", s);
     s = rtrim(s);
     printf("_%s_\n", 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_\n", s);
     s = trim(s);
     printf("_%s_\n", s);