<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.15.0" xml:lang="en-US">
  <compounddef id="group__string__utils" kind="group">
    <compoundname>string_utils</compoundname>
    <title>(Nucleic Acid Sequence) String Utilitites</title>
    <innerfile refid="sequences_2utils_8h">utils.h</innerfile>
    <innerfile refid="strings_8h">strings.h</innerfile>
    <sectiondef kind="var">
      <memberdef kind="variable" id="group__string__utils_1ga6c1dc51f61ebb5d81ef975fca3ccca96" prot="public" static="no" mutable="no">
        <type>const char *</type>
        <definition>const char* delimiter</definition>
        <argsstring></argsstring>
        <name>delimiter</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="301" column="37" bodyfile="ViennaRNA/utils/strings.h" bodystart="301" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="group__string__utils_1ga43b1ae18bbec11d00dce87c50756ae0b" prot="public" static="no" mutable="no">
        <type>const char unsigned int</type>
        <definition>const char unsigned int options</definition>
        <argsstring></argsstring>
        <name>options</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="302" column="37" bodyfile="ViennaRNA/utils/strings.h" bodystart="302" bodyend="-1"/>
      </memberdef>
    </sectiondef>
    <sectiondef kind="func">
      <memberdef kind="function" id="group__string__utils_1gacfed92cba77064f6c743f9118d079bfc" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void vrna_seq_toRNA</definition>
        <argsstring>(char *sequence)</argsstring>
        <name>vrna_seq_toRNA</name>
        <param>
          <type>char *</type>
          <declname>sequence</declname>
        </param>
        <briefdescription>
<para>Convert an input sequence (possibly containing DNA alphabet characters) to RNA alphabet. </para>
        </briefdescription>
        <detaileddescription>
<para>This function substitudes <emphasis>T</emphasis> and <emphasis>t</emphasis> with <emphasis>U</emphasis> and <emphasis>u</emphasis>, respectively</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>sequence</parametername>
</parameternamelist>
<parameterdescription>
<para>The sequence to be converted </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/sequences/utils.h" line="35" column="1" declfile="ViennaRNA/sequences/utils.h" declline="35" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__string__utils_1ga561e1c63199adbd7de38ed394e098d95" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>char *</type>
        <definition>char * vrna_DNA_complement</definition>
        <argsstring>(const char *sequence)</argsstring>
        <name>vrna_DNA_complement</name>
        <param>
          <type>const char *</type>
          <declname>sequence</declname>
        </param>
        <briefdescription>
<para>Retrieve a DNA sequence which resembles the complement of the input sequence. </para>
        </briefdescription>
        <detaileddescription>
<para>This function returns a mew DNA string which is the complement of the input, i.e. the nucleotide letters <computeroutput>A</computeroutput>,<computeroutput>C</computeroutput>,<computeroutput>G</computeroutput>, and <computeroutput>T</computeroutput> are substituted by their complements <computeroutput>T</computeroutput>,<computeroutput>G</computeroutput>,<computeroutput>C</computeroutput>, and <computeroutput>A</computeroutput>, respectively.</para>
<para>Any characters not belonging to the alphabet of the 4 canonical bases of DNA are not altered.</para>
<para><simplesect kind="note"><para>This function also handles lower-case input sequences and treats <computeroutput>U</computeroutput> of the RNA alphabet equally to <computeroutput>T</computeroutput></para>
</simplesect>
<simplesect kind="see"><para><ref refid="group__string__utils_1gae15cbc5999a67c90f45538e42c3201fe" kindref="member">vrna_seq_reverse()</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>sequence</parametername>
</parameternamelist>
<parameterdescription>
<para>the input DNA sequence </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The complement of the input DNA sequence </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/sequences/utils.h" line="57" column="1" declfile="ViennaRNA/sequences/utils.h" declline="57" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__string__utils_1ga593320caa8245a446efdd391215bdfc9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>char *</type>
        <definition>char * vrna_seq_ungapped</definition>
        <argsstring>(const char *sequence)</argsstring>
        <name>vrna_seq_ungapped</name>
        <param>
          <type>const char *</type>
          <declname>sequence</declname>
        </param>
        <briefdescription>
<para>Remove gap characters from a nucleotide sequence. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>sequence</parametername>
</parameternamelist>
<parameterdescription>
<para>The original, null-terminated nucleotide sequence </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>A copy of the input sequence with all gap characters removed </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/sequences/utils.h" line="67" column="1" declfile="ViennaRNA/sequences/utils.h" declline="67" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__string__utils_1ga8429d7d84d7b0c7d77cda7c4ceff0947" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>char *</type>
        <definition>char * vrna_strdup_printf</definition>
        <argsstring>(const char *format,...)</argsstring>
        <name>vrna_strdup_printf</name>
        <param>
          <type>const char *</type>
          <declname>format</declname>
        </param>
        <param>
          <type>...</type>
        </param>
        <briefdescription>
<para>Safely create a formatted string. </para>
        </briefdescription>
        <detaileddescription>
<para>This function is a safe implementation for creating a formatted character array, similar to <emphasis>sprintf</emphasis>. Internally, it uses the <emphasis>asprintf</emphasis> function if available to dynamically allocate a large enough character array to store the supplied content. If <emphasis>asprintf</emphasis> is not available, mimic it&apos;s behavior using <emphasis>vsnprintf</emphasis>.</para>
<para><simplesect kind="note"><para>The returned pointer of this function should always be passed to <emphasis>free()</emphasis> to release the allocated memory</para>
</simplesect>
<simplesect kind="see"><para><ref refid="group__string__utils_1ga84a3a0400df93050b650a0d31afd1e54" kindref="member">vrna_strdup_vprintf()</ref>, <ref refid="group__string__utils_1gac0771ec71316023067f2aae61a5aa0fb" kindref="member">vrna_strcat_printf()</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>format</parametername>
</parameternamelist>
<parameterdescription>
<para>The format string (See also asprintf) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>...</parametername>
</parameternamelist>
<parameterdescription>
<para>The list of variables used to fill the format string </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The formatted, null-terminated string, or NULL if something has gone wrong </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="90" column="1" declfile="ViennaRNA/utils/strings.h" declline="90" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__string__utils_1ga84a3a0400df93050b650a0d31afd1e54" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>char *</type>
        <definition>char * vrna_strdup_vprintf</definition>
        <argsstring>(const char *format, va_list argp)</argsstring>
        <name>vrna_strdup_vprintf</name>
        <param>
          <type>const char *</type>
          <declname>format</declname>
        </param>
        <param>
          <type>va_list</type>
          <declname>argp</declname>
        </param>
        <briefdescription>
<para>Safely create a formatted string. </para>
        </briefdescription>
        <detaileddescription>
<para>This function is the <emphasis>va_list</emphasis> version of <ref refid="group__string__utils_1ga8429d7d84d7b0c7d77cda7c4ceff0947" kindref="member">vrna_strdup_printf()</ref></para>
<para><simplesect kind="note"><para>The returned pointer of this function should always be passed to <emphasis>free()</emphasis> to release the allocated memory</para>
</simplesect>
<simplesect kind="see"><para><ref refid="group__string__utils_1ga8429d7d84d7b0c7d77cda7c4ceff0947" kindref="member">vrna_strdup_printf()</ref>, <ref refid="group__string__utils_1gac0771ec71316023067f2aae61a5aa0fb" kindref="member">vrna_strcat_printf()</ref>, <ref refid="group__string__utils_1ga122df216996ba62fd5056b7743e3131a" kindref="member">vrna_strcat_vprintf()</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>format</parametername>
</parameternamelist>
<parameterdescription>
<para>The format string (See also asprintf) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>argp</parametername>
</parameternamelist>
<parameterdescription>
<para>The list of arguments to fill the format string </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The formatted, null-terminated string, or NULL if something has gone wrong </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="109" column="1" declfile="ViennaRNA/utils/strings.h" declline="109" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__string__utils_1gac0771ec71316023067f2aae61a5aa0fb" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int vrna_strcat_printf</definition>
        <argsstring>(char **dest, const char *format,...)</argsstring>
        <name>vrna_strcat_printf</name>
        <param>
          <type>char **</type>
          <declname>dest</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>format</declname>
        </param>
        <param>
          <type>...</type>
        </param>
        <briefdescription>
<para>Safely append a formatted string to another string. </para>
        </briefdescription>
        <detaileddescription>
<para>This function is a safe implementation for appending a formatted character array, similar to a cobination of <emphasis>strcat</emphasis> and <emphasis>sprintf</emphasis>. The function automatically allocates enough memory to store both, the previous content stored at <computeroutput>dest</computeroutput> and the appended format string. If the <computeroutput>dest</computeroutput> pointer is NULL, the function allocate memory only for the format string. The function returns the number of characters in the resulting string or -1 in case of an error.</para>
<para><simplesect kind="see"><para><ref refid="group__string__utils_1ga122df216996ba62fd5056b7743e3131a" kindref="member">vrna_strcat_vprintf()</ref>, <ref refid="group__string__utils_1ga8429d7d84d7b0c7d77cda7c4ceff0947" kindref="member">vrna_strdup_printf()</ref>, <ref refid="group__string__utils_1ga84a3a0400df93050b650a0d31afd1e54" kindref="member">vrna_strdup_vprintf()</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dest</parametername>
</parameternamelist>
<parameterdescription>
<para>The address of a char *pointer where the formatted string is to be appended </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>format</parametername>
</parameternamelist>
<parameterdescription>
<para>The format string (See also sprintf) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>...</parametername>
</parameternamelist>
<parameterdescription>
<para>The list of variables used to fill the format string </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The number of characters in the final string, or -1 on error </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="132" column="1" declfile="ViennaRNA/utils/strings.h" declline="132" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__string__utils_1ga122df216996ba62fd5056b7743e3131a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int vrna_strcat_vprintf</definition>
        <argsstring>(char **dest, const char *format, va_list args)</argsstring>
        <name>vrna_strcat_vprintf</name>
        <param>
          <type>char **</type>
          <declname>dest</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>format</declname>
        </param>
        <param>
          <type>va_list</type>
          <declname>args</declname>
        </param>
        <briefdescription>
<para>Safely append a formatted string to another string. </para>
        </briefdescription>
        <detaileddescription>
<para>This function is the <emphasis>va_list</emphasis> version of <ref refid="group__string__utils_1gac0771ec71316023067f2aae61a5aa0fb" kindref="member">vrna_strcat_printf()</ref></para>
<para><simplesect kind="see"><para><ref refid="group__string__utils_1gac0771ec71316023067f2aae61a5aa0fb" kindref="member">vrna_strcat_printf()</ref>, <ref refid="group__string__utils_1ga8429d7d84d7b0c7d77cda7c4ceff0947" kindref="member">vrna_strdup_printf()</ref>, <ref refid="group__string__utils_1ga84a3a0400df93050b650a0d31afd1e54" kindref="member">vrna_strdup_vprintf()</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>dest</parametername>
</parameternamelist>
<parameterdescription>
<para>The address of a char *pointer where the formatted string is to be appended </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>format</parametername>
</parameternamelist>
<parameterdescription>
<para>The format string (See also sprintf) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>args</parametername>
</parameternamelist>
<parameterdescription>
<para>The list of argument to fill the format string </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The number of characters in the final string, or -1 on error </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="150" column="1" declfile="ViennaRNA/utils/strings.h" declline="150" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__string__utils_1gad4a36bfad05f22ad5d33d00d45aa9b01" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>unsigned int</type>
        <definition>unsigned int vrna_strtrim</definition>
        <argsstring>(char *string, const char *delimiters, unsigned int keep, unsigned int options)</argsstring>
        <name>vrna_strtrim</name>
        <param>
          <type>char *</type>
          <declname>string</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>delimiters</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>keep</declname>
        </param>
        <param>
          <type>unsigned int</type>
          <declname>options</declname>
        </param>
        <briefdescription>
<para>Trim a string by removing (multiple) occurences of a particular character. </para>
        </briefdescription>
        <detaileddescription>
<para>This function removes (multiple) consecutive occurences of a set of characters (<computeroutput>delimiters</computeroutput>) within an input string. It may be used to remove leading and/or trailing whitespaces or to restrict the maximum number of consecutive occurences of the delimiting characters <computeroutput>delimiters</computeroutput>. Setting <computeroutput>keep=0</computeroutput> removes all occurences, while other values reduce multiple consecutive occurences to at most <computeroutput>keep</computeroutput> delimiters. This might be useful if one would like to reduce multiple whitespaces to a single one, or to remove empty fields within a comma-separated value string.</para>
<para>The parameter <computeroutput>delimiters</computeroutput> may be a pointer to a 0-terminated char string containing a set of any ASCII character. If <emphasis>NULL</emphasis> is passed as delimiter set or an empty char string, all whitespace characters are trimmed. The <computeroutput>options</computeroutput> parameter is a bit vector that specifies which part of the string should undergo trimming. The implementation distinguishes the leading (<ref refid="group__string__utils_1ga658ff8ea3e4ae6838d77ece7024a583f" kindref="member">VRNA_TRIM_LEADING</ref>), trailing (<ref refid="group__string__utils_1ga4b551fba1b2bbecafd335471b2c002dd" kindref="member">VRNA_TRIM_TRAILING</ref>), and in-between (<ref refid="group__string__utils_1gac500a0f17fff9c60ac98ed178f0a8fa3" kindref="member">VRNA_TRIM_IN_BETWEEN</ref>) part with respect to the delimiter set. Combinations of these parts can be specified by using logical-or operator.</para>
<para>The following example code removes all leading and trailing whitespace characters from the input string: <programlisting filename=".c"><codeline><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">string</highlight><highlight class="normal">[20]<sp/><sp/>=<sp/></highlight><highlight class="stringliteral">&quot;<sp/><sp/>\t<sp/>blablabla<sp/><sp/><sp/>&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline><highlight class="normal"></highlight><highlight class="keywordtype">unsigned</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">int</highlight><highlight class="normal"><sp/><sp/>r<sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>=<sp/><ref refid="group__string__utils_1gad4a36bfad05f22ad5d33d00d45aa9b01" kindref="member">vrna_strtrim</ref>(&amp;(</highlight><highlight class="keywordtype">string</highlight><highlight class="normal">[0]),</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>NULL,</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>0,</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="group__string__utils_1gab6272ec12f482870fa81d3d84d9b7370" kindref="member">VRNA_TRIM_DEFAULT</ref>);</highlight></codeline>
</programlisting></para>
<para><simplesect kind="note"><para>The delimiter always consists of a single character from the set of characters provided. In case of alternative delimiters and non-null <computeroutput>keep</computeroutput> parameter, the first <computeroutput>keep</computeroutput> delimiters are preserved within the string. Use <ref refid="group__string__utils_1ga974e5e82e496e20290ec0f54c0e1d1da" kindref="member">VRNA_TRIM_SUBST_BY_FIRST</ref> to substitute all remaining delimiting characters with the first from the <computeroutput>delimiters</computeroutput> list.</para>
</simplesect>
<simplesect kind="see"><para><ref refid="group__string__utils_1ga658ff8ea3e4ae6838d77ece7024a583f" kindref="member">VRNA_TRIM_LEADING</ref>, <ref refid="group__string__utils_1ga4b551fba1b2bbecafd335471b2c002dd" kindref="member">VRNA_TRIM_TRAILING</ref>, <ref refid="group__string__utils_1gac500a0f17fff9c60ac98ed178f0a8fa3" kindref="member">VRNA_TRIM_IN_BETWEEN</ref>, <ref refid="group__string__utils_1ga974e5e82e496e20290ec0f54c0e1d1da" kindref="member">VRNA_TRIM_SUBST_BY_FIRST</ref>, <ref refid="group__string__utils_1gab6272ec12f482870fa81d3d84d9b7370" kindref="member">VRNA_TRIM_DEFAULT</ref>, <ref refid="group__string__utils_1ga2ad8cad99ec119999964dd6e245cbb73" kindref="member">VRNA_TRIM_ALL</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>string</parametername>
</parameternamelist>
<parameterdescription>
<para>The &apos;\0&apos;-terminated input string to trim </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>delimiters</parametername>
</parameternamelist>
<parameterdescription>
<para>The delimiter characters as 0-terminated char array (or <emphasis>NULL</emphasis>) </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>keep</parametername>
</parameternamelist>
<parameterdescription>
<para>The maximum number of consecutive occurences of the delimiter in the output string </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>options</parametername>
</parameternamelist>
<parameterdescription>
<para>The option bit vector specifying the mode of operation </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The number of delimiters removed from the string</para>
</simplesect>
<xrefsect id="wrappers_1_wrappers000185"><xreftitle>SWIG Wrapper Notes</xreftitle><xrefdescription><para><parblock><para>Since many scripting languages treat strings as immutable objects, this function does not modify the input string directly. Instead, it returns the modified string as second return value, together with the number of removed delimiters.</para>
<para>The scripting language interface provides an overloaded version of this function, with default parameters <computeroutput>delimiters=NULL</computeroutput>, <computeroutput>keep=0</computeroutput>, and <computeroutput>options=<ref refid="group__string__utils_1gab6272ec12f482870fa81d3d84d9b7370" kindref="member">VRNA_TRIM_DEFAULT</ref></computeroutput>. See, e.g.  <verbatim>embed:rst:inline :py:func:`RNA.strtrim()` in the :doc:`/api_python`</verbatim>. </para>
</parblock></para>
</xrefdescription></xrefsect></para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="238" column="1" declfile="ViennaRNA/utils/strings.h" declline="238" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__string__utils_1gaf1bdff12ea8383c5d8eef5f9ef9fcefe" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>char **</type>
        <definition>char ** vrna_strsplit</definition>
        <argsstring>(const char *string, const char *delimiter)</argsstring>
        <name>vrna_strsplit</name>
        <param>
          <type>const char *</type>
          <declname>string</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>delimiter</declname>
        </param>
        <briefdescription>
<para>Split a string into tokens using a delimiting character. </para>
        </briefdescription>
        <detaileddescription>
<para>This function splits a string into an array of strings using a single character that delimits the elements within the string. The default delimiter is the ampersand <computeroutput>&apos;&amp;&apos;</computeroutput> and will be used when <computeroutput>NULL</computeroutput> is passed as a second argument. The returned list is NULL terminated, i.e. the last element is <computeroutput>NULL</computeroutput>. If the delimiter is not found, the returned list contains exactly one element: the input string.</para>
<para>For instance, the following code:</para>
<para><programlisting filename=".c"><codeline><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>**tok<sp/>=<sp/><ref refid="group__string__utils_1gaf1bdff12ea8383c5d8eef5f9ef9fcefe" kindref="member">vrna_strsplit</ref>(</highlight><highlight class="stringliteral">&quot;GGGG&amp;CCCC&amp;AAAAA&quot;</highlight><highlight class="normal">,<sp/>NULL);</highlight></codeline>
<codeline><highlight class="normal"></highlight></codeline>
<codeline><highlight class="normal"></highlight><highlight class="keywordflow">for</highlight><highlight class="normal"><sp/>(</highlight><highlight class="keywordtype">char</highlight><highlight class="normal"><sp/>**ptr<sp/>=<sp/>tok;<sp/>*ptr;<sp/>ptr++)<sp/>{</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/>printf(</highlight><highlight class="stringliteral">&quot;%s\n&quot;</highlight><highlight class="normal">,<sp/>*ptr);</highlight></codeline>
<codeline><highlight class="normal"><sp/><sp/>free(*ptr);</highlight></codeline>
<codeline><highlight class="normal">}</highlight></codeline>
<codeline><highlight class="normal">free(tok);</highlight></codeline>
</programlisting> produces this output:</para>
<para><verbatim>* GGGG
* CCCC
* AAAAA
* </verbatim> and properly free&apos;s the memory occupied by the returned element array.</para>
<para><simplesect kind="note"><para>This function internally uses <emphasis>strtok_r()</emphasis> and is therefore considered to be thread-safe. Also note, that it is the users responsibility to free the memory of the array and that of the individual element strings!<linebreak/>
 In case the input string consists of consecutive delimiters, starts or ends with one or multiple delimiters, empty strings are produced in the output list, indicating the empty fields of data resulting from the split. Use <ref refid="group__string__utils_1gad4a36bfad05f22ad5d33d00d45aa9b01" kindref="member">vrna_strtrim()</ref> prior to a call to this function to remove any leading, trailing, or in-between empty fields.</para>
</simplesect>
<simplesect kind="see"><para><ref refid="group__string__utils_1gad4a36bfad05f22ad5d33d00d45aa9b01" kindref="member">vrna_strtrim()</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>string</parametername>
</parameternamelist>
<parameterdescription>
<para>The input string that should be split into elements </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>delimiter</parametername>
</parameternamelist>
<parameterdescription>
<para>The delimiting character. If <computeroutput>NULL</computeroutput>, the delimiter is <computeroutput>&quot;&amp;&quot;</computeroutput> </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>A <computeroutput>NULL</computeroutput> terminated list of the elements in the string </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="290" column="1" declfile="ViennaRNA/utils/strings.h" declline="290" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__string__utils_1ga1dabf4436772a90f050a21e128b7c7fb" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>char *</type>
        <definition>char * vrna_strjoin</definition>
        <argsstring>(const char **strings, const char *delimiter)</argsstring>
        <name>vrna_strjoin</name>
        <param>
          <type>const char **</type>
          <declname>strings</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>delimiter</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="295" column="1" declfile="ViennaRNA/utils/strings.h" declline="295" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__string__utils_1ga05640f8c4eb2399e0e089c27a27990f7" prot="public" static="no" const="yes" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>vrna_array</definition>
        <argsstring>(double) vrna_str_to_dbl_array(const char *str</argsstring>
        <name>vrna_array</name>
        <param>
          <type>double</type>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="299" column="1"/>
      </memberdef>
      <memberdef kind="function" id="group__string__utils_1gab4714ab789de302ee19e0e7ea0766a3e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>char *</type>
        <definition>char * vrna_random_string</definition>
        <argsstring>(int l, const char symbols[])</argsstring>
        <name>vrna_random_string</name>
        <param>
          <type>int</type>
          <declname>l</declname>
        </param>
        <param>
          <type>const char</type>
          <declname>symbols</declname>
          <array>[]</array>
        </param>
        <briefdescription>
<para>Create a random string using characters from a specified symbol set. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>l</parametername>
</parameternamelist>
<parameterdescription>
<para>The length of the sequence </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>symbols</parametername>
</parameternamelist>
<parameterdescription>
<para>The symbol set </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>A random string of length &apos;l&apos; containing characters from the symbolset </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="313" column="1" declfile="ViennaRNA/utils/strings.h" declline="313" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__string__utils_1ga301798b43b6f66687985c725efd14f32" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int vrna_hamming_distance</definition>
        <argsstring>(const char *s1, const char *s2)</argsstring>
        <name>vrna_hamming_distance</name>
        <param>
          <type>const char *</type>
          <declname>s1</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>s2</declname>
        </param>
        <briefdescription>
<para>Calculate hamming distance between two sequences. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>s1</parametername>
</parameternamelist>
<parameterdescription>
<para>The first sequence </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>s2</parametername>
</parameternamelist>
<parameterdescription>
<para>The second sequence </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The hamming distance between s1 and s2 </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="325" column="1" declfile="ViennaRNA/utils/strings.h" declline="325" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__string__utils_1ga5d1c2271e79d9bcb52d4e68360763fb9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>int</type>
        <definition>int vrna_hamming_distance_bound</definition>
        <argsstring>(const char *s1, const char *s2, int n)</argsstring>
        <name>vrna_hamming_distance_bound</name>
        <param>
          <type>const char *</type>
          <declname>s1</declname>
        </param>
        <param>
          <type>const char *</type>
          <declname>s2</declname>
        </param>
        <param>
          <type>int</type>
          <declname>n</declname>
        </param>
        <briefdescription>
<para>Calculate hamming distance between two sequences up to a specified length. </para>
        </briefdescription>
        <detaileddescription>
<para>This function is similar to <ref refid="group__string__utils_1ga301798b43b6f66687985c725efd14f32" kindref="member">vrna_hamming_distance()</ref> but instead of comparing both sequences up to their actual length only the first &apos;n&apos; characters are taken into account <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>s1</parametername>
</parameternamelist>
<parameterdescription>
<para>The first sequence </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>s2</parametername>
</parameternamelist>
<parameterdescription>
<para>The second sequence </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>n</parametername>
</parameternamelist>
<parameterdescription>
<para>The length of the subsequences to consider (starting from the 5&apos; end) </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The hamming distance between s1 and s2 </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="340" column="1" declfile="ViennaRNA/utils/strings.h" declline="340" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__string__utils_1ga4f44dca03c9d708d68e64c0610bb9091" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void vrna_seq_toupper</definition>
        <argsstring>(char *sequence)</argsstring>
        <name>vrna_seq_toupper</name>
        <param>
          <type>char *</type>
          <declname>sequence</declname>
        </param>
        <briefdescription>
<para>Convert an input sequence to uppercase. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>sequence</parametername>
</parameternamelist>
<parameterdescription>
<para>The sequence to be converted </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="351" column="1" declfile="ViennaRNA/utils/strings.h" declline="351" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__string__utils_1gae15cbc5999a67c90f45538e42c3201fe" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void vrna_seq_reverse</definition>
        <argsstring>(char *sequence)</argsstring>
        <name>vrna_seq_reverse</name>
        <param>
          <type>char *</type>
          <declname>sequence</declname>
        </param>
        <briefdescription>
<para>Reverse a string in-place. </para>
        </briefdescription>
        <detaileddescription>
<para>This function reverses a character string in the form of an array of characters in-place, i.e. it changes the input parameter.</para>
<para><simplesect kind="post"><para>After execution, the input <computeroutput>sequence</computeroutput> consists of the reverse string prior to the execution.</para>
</simplesect>
<simplesect kind="see"><para><ref refid="group__string__utils_1ga561e1c63199adbd7de38ed394e098d95" kindref="member">vrna_DNA_complement()</ref></para>
</simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>sequence</parametername>
</parameternamelist>
<parameterdescription>
<para>The string to reverse </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="369" column="1" declfile="ViennaRNA/utils/strings.h" declline="369" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__string__utils_1ga458d5a8cbec709665426372e3aee93b8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>char *</type>
        <definition>char * vrna_cut_point_insert</definition>
        <argsstring>(const char *string, int cp)</argsstring>
        <name>vrna_cut_point_insert</name>
        <param>
          <type>const char *</type>
          <declname>string</declname>
        </param>
        <param>
          <type>int</type>
          <declname>cp</declname>
        </param>
        <briefdescription>
<para>Add a separating &apos;&amp;&apos; character into a string according to cut-point position. </para>
        </briefdescription>
        <detaileddescription>
<para>If the cut-point position is less or equal to zero, this function just returns a copy of the provided string. Otherwise, the cut-point character is set at the corresponding position</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>string</parametername>
</parameternamelist>
<parameterdescription>
<para>The original string </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cp</parametername>
</parameternamelist>
<parameterdescription>
<para>The cut-point position </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>A copy of the provided string including the cut-point character </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="384" column="1" declfile="ViennaRNA/utils/strings.h" declline="384" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__string__utils_1gaea2daba17812f6581f559afda27fcbf8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>char *</type>
        <definition>char * vrna_cut_point_remove</definition>
        <argsstring>(const char *string, int *cp)</argsstring>
        <name>vrna_cut_point_remove</name>
        <param>
          <type>const char *</type>
          <declname>string</declname>
        </param>
        <param>
          <type>int *</type>
          <declname>cp</declname>
        </param>
        <briefdescription>
<para>Remove a separating &apos;&amp;&apos; character from a string. </para>
        </briefdescription>
        <detaileddescription>
<para>This function removes the cut-point indicating &apos;&amp;&apos; character from a string and memorizes its position in a provided integer variable. If not &apos;&amp;&apos; is found in the input, the integer variable is set to -1. The function returns a copy of the input string with the &apos;&amp;&apos; being sliced out.</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>string</parametername>
</parameternamelist>
<parameterdescription>
<para>The original string </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cp</parametername>
</parameternamelist>
<parameterdescription>
<para>The cut-point position </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>A copy of the input string with the &apos;&amp;&apos; being sliced out </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="401" column="1" declfile="ViennaRNA/utils/strings.h" declline="401" declcolumn="1"/>
      </memberdef>
      <memberdef kind="function" id="group__string__utils_1gac90f8463f175ad2f289a89e2fdc6a956" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>size_t *</type>
        <definition>size_t * vrna_strchr</definition>
        <argsstring>(const char *string, int c, size_t n)</argsstring>
        <name>vrna_strchr</name>
        <param>
          <type>const char *</type>
          <declname>string</declname>
        </param>
        <param>
          <type>int</type>
          <declname>c</declname>
        </param>
        <param>
          <type>size_t</type>
          <declname>n</declname>
        </param>
        <briefdescription>
<para>Find (all) occurrences of a character within a string. </para>
        </briefdescription>
        <detaileddescription>
<para>string The C string to be scanned</para>
<para>c The character to be searched for</para>
<para>n The maximum number of occurences to search for (or 0 for all occurrences) <simplesect kind="return"><para>An 1-based array of positions(0-based) or <bold>NULL</bold> on error. Position 0 specifies the number of occurrences found. </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="415" column="1" declfile="ViennaRNA/utils/strings.h" declline="415" declcolumn="1"/>
      </memberdef>
    </sectiondef>
    <sectiondef kind="define">
      <memberdef kind="define" id="group__string__utils_1ga03943706e48069237cd57f2d35ca987e" prot="public" static="no">
        <name>XSTR</name>
        <param><defname>s</defname></param>
        <initializer><ref refid="group__string__utils_1ga6388870e639eee9c0a69446876f1f8cc" kindref="member">STR</ref>(s)</initializer>
        <briefdescription>
<para>Stringify a macro after expansion. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="34" column="9" bodyfile="ViennaRNA/utils/strings.h" bodystart="34" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__string__utils_1ga6388870e639eee9c0a69446876f1f8cc" prot="public" static="no">
        <name>STR</name>
        <param><defname>s</defname></param>
        <initializer>#s</initializer>
        <briefdescription>
<para>Stringify a macro argument. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="39" column="9" bodyfile="ViennaRNA/utils/strings.h" bodystart="39" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__string__utils_1gafb228174279df9486a5cb56ac0bc79a3" prot="public" static="no">
        <name>FILENAME_MAX_LENGTH</name>
        <initializer>80</initializer>
        <briefdescription>
<para>Maximum length of filenames that are generated by our programs. </para>
        </briefdescription>
        <detaileddescription>
<para>This definition should be used throughout the complete ViennaRNA package wherever a static array holding filenames of output files is declared. </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="49" column="9" bodyfile="ViennaRNA/utils/strings.h" bodystart="49" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__string__utils_1ga33c3b1826b8e2739f09f111ec719ded5" prot="public" static="no">
        <name>FILENAME_ID_LENGTH</name>
        <initializer>42</initializer>
        <briefdescription>
<para>Maximum length of id taken from fasta header for filename generation. </para>
        </briefdescription>
        <detaileddescription>
<para>this has to be smaller than FILENAME_MAX_LENGTH since in most cases, some suffix will be appended to the ID </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="57" column="9" bodyfile="ViennaRNA/utils/strings.h" bodystart="57" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__string__utils_1ga658ff8ea3e4ae6838d77ece7024a583f" prot="public" static="no">
        <name>VRNA_TRIM_LEADING</name>
        <initializer>1U</initializer>
        <briefdescription>
<para>Trim only characters leading the string. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="see"><para><ref refid="group__string__utils_1gad4a36bfad05f22ad5d33d00d45aa9b01" kindref="member">vrna_strtrim()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="159" column="9" bodyfile="ViennaRNA/utils/strings.h" bodystart="159" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__string__utils_1ga4b551fba1b2bbecafd335471b2c002dd" prot="public" static="no">
        <name>VRNA_TRIM_TRAILING</name>
        <initializer>2U</initializer>
        <briefdescription>
<para>Trim only characters trailing the string. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="see"><para><ref refid="group__string__utils_1gad4a36bfad05f22ad5d33d00d45aa9b01" kindref="member">vrna_strtrim()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="165" column="9" bodyfile="ViennaRNA/utils/strings.h" bodystart="165" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__string__utils_1gac500a0f17fff9c60ac98ed178f0a8fa3" prot="public" static="no">
        <name>VRNA_TRIM_IN_BETWEEN</name>
        <initializer>4U</initializer>
        <briefdescription>
<para>Trim only characters within the string. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="see"><para><ref refid="group__string__utils_1gad4a36bfad05f22ad5d33d00d45aa9b01" kindref="member">vrna_strtrim()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="171" column="9" bodyfile="ViennaRNA/utils/strings.h" bodystart="171" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__string__utils_1ga974e5e82e496e20290ec0f54c0e1d1da" prot="public" static="no">
        <name>VRNA_TRIM_SUBST_BY_FIRST</name>
        <initializer>8U</initializer>
        <briefdescription>
<para>Replace remaining characters after trimming with the first delimiter in list. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="see"><para><ref refid="group__string__utils_1gad4a36bfad05f22ad5d33d00d45aa9b01" kindref="member">vrna_strtrim()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="177" column="9" bodyfile="ViennaRNA/utils/strings.h" bodystart="177" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__string__utils_1gab6272ec12f482870fa81d3d84d9b7370" prot="public" static="no">
        <name>VRNA_TRIM_DEFAULT</name>
        <initializer>( <ref refid="group__string__utils_1ga658ff8ea3e4ae6838d77ece7024a583f" kindref="member">VRNA_TRIM_LEADING</ref> | <ref refid="group__string__utils_1ga4b551fba1b2bbecafd335471b2c002dd" kindref="member">VRNA_TRIM_TRAILING</ref> )</initializer>
        <briefdescription>
<para>Default settings for trimming, i.e. trim leading and trailing. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="see"><para><ref refid="group__string__utils_1gad4a36bfad05f22ad5d33d00d45aa9b01" kindref="member">vrna_strtrim()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="183" column="9" bodyfile="ViennaRNA/utils/strings.h" bodystart="183" bodyend="-1"/>
      </memberdef>
      <memberdef kind="define" id="group__string__utils_1ga2ad8cad99ec119999964dd6e245cbb73" prot="public" static="no">
        <name>VRNA_TRIM_ALL</name>
        <initializer>( <ref refid="group__string__utils_1gab6272ec12f482870fa81d3d84d9b7370" kindref="member">VRNA_TRIM_DEFAULT</ref> | <ref refid="group__string__utils_1gac500a0f17fff9c60ac98ed178f0a8fa3" kindref="member">VRNA_TRIM_IN_BETWEEN</ref> )</initializer>
        <briefdescription>
<para>Trim characters anywhere in the string. </para>
        </briefdescription>
        <detaileddescription>
<para><simplesect kind="see"><para><ref refid="group__string__utils_1gad4a36bfad05f22ad5d33d00d45aa9b01" kindref="member">vrna_strtrim()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="ViennaRNA/utils/strings.h" line="189" column="9" bodyfile="ViennaRNA/utils/strings.h" bodystart="189" bodyend="-1"/>
      </memberdef>
    </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
  </compounddef>
</doxygen>
