Module CString

module type S = module type of Stdlib.String

Module type S is the one from OCaml Stdlib.

module type ExtS = sig ... end
include ExtS

We include the standard library

include S
val length : string -> int
val get : string -> int -> char
val set : bytes -> int -> char -> unit
val create : int -> bytes
val make : int -> char -> string
val init : int -> (int -> char) -> string
val copy : string -> string
val sub : string -> int -> int -> string
val fill : bytes -> int -> int -> char -> unit
val blit : string -> int -> bytes -> int -> int -> unit
val concat : string -> string list -> string
val iter : (char -> unit) -> string -> unit
val iteri : (int -> char -> unit) -> string -> unit
val map : (char -> char) -> string -> string
val mapi : (int -> char -> char) -> string -> string
val trim : string -> string
val escaped : string -> string
val index : string -> char -> int
val index_opt : string -> char -> int option
val rindex : string -> char -> int
val rindex_opt : string -> char -> int option
val index_from : string -> int -> char -> int
val index_from_opt : string -> int -> char -> int option
val rindex_from : string -> int -> char -> int
val rindex_from_opt : string -> int -> char -> int option
val contains : string -> char -> bool
val contains_from : string -> int -> char -> bool
val rcontains_from : string -> int -> char -> bool
val uppercase : string -> string
val lowercase : string -> string
val capitalize : string -> string
val uncapitalize : string -> string
val uppercase_ascii : string -> string
val lowercase_ascii : string -> string
val capitalize_ascii : string -> string
val uncapitalize_ascii : string -> string
type t = string
val compare : t -> t -> int
val equal : t -> t -> bool
val split_on_char : char -> string -> string list
val to_seq : t -> char Stdlib.Seq.t
val to_seqi : t -> (int * char) Stdlib.Seq.t
val of_seq : char Stdlib.Seq.t -> t
val unsafe_get : string -> int -> char
val unsafe_set : bytes -> int -> char -> unit
val unsafe_blit : string -> int -> bytes -> int -> int -> unit
val unsafe_fill : bytes -> int -> int -> char -> unit

Equality on strings

val hash : string -> int

Hashing on strings. Should be compatible with generic one.

val is_empty : string -> bool

Test whether a string is empty.

val explode : string -> string list

explode "x1...xn" returns ["x1"; ...; "xn"]

val implode : string list -> string

implode [s1; ...; sn] returns s1 ^ ... ^ sn

val drop_simple_quotes : string -> string

Remove the eventual first surrounding simple quotes of a string.

val quote_coq_string : string -> string

Quote a string according to Coq conventions (i.e. doubling double quotes and surrounding by double quotes)

val unquote_coq_string : string -> string option

Unquote a quoted string according to Coq conventions (i.e. removing surrounding double quotes and undoubling double quotes); returns None if not a quoted string

val html_escape : string -> string

replace HTML reserved characters with escape sequences, e.g. `&` -> "&"

val string_index_from : string -> int -> string -> int

As index_from, but takes a string instead of a char as pattern argument

val string_contains : where:string -> what:string -> bool

As contains, but takes a string instead of a char as pattern argument

val plural : int -> string -> string

plural n s adds a optional 's' to the s when 2 <= n.

val lplural : _ list -> string -> string

lplural l s is plural (List.length l) s.

val conjugate_verb_to_be : int -> string

conjugate_verb_to_be returns "is" when n=1 and "are" otherwise

val ordinal : int -> string

Generate the ordinal number in English.

val is_sub : string -> string -> int -> bool

is_sub p s off tests whether s contains p at offset off.

val is_prefix : string -> string -> bool

is_prefix p s tests whether p is a prefix of s.

val is_suffix : string -> string -> bool

is_suffix suf s tests whether suf is a suffix of s.

Generic operations

*

module Set : CSet.ExtS with type elt = t

Finite sets on string

module Map : CMap.ExtS with type key = t and module Set := Set

Finite maps on string

module Pred : Predicate.S with type elt = t
module List : CList.MonoS with type elt = t

Association lists with string as keys

val hcons : string -> string

Hashconsing on string