docs/api-2.1/string_8h.html

Sat, 06 Feb 2021 19:11:44 +0100

author
Mike Becker <universe@uap-core.de>
date
Sat, 06 Feb 2021 19:11:44 +0100
changeset 390
d345541018fa
permissions
-rw-r--r--

starts ucx 3.0 development

universe@390 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
universe@390 2 <html xmlns="http://www.w3.org/1999/xhtml">
universe@390 3 <head>
universe@390 4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
universe@390 5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
universe@390 6 <meta name="generator" content="Doxygen 1.8.13"/>
universe@390 7 <meta name="viewport" content="width=device-width, initial-scale=1"/>
universe@390 8 <title>ucx: /home/mike/workspace/c/ucx/src/ucx/string.h File Reference</title>
universe@390 9 <link href="tabs.css" rel="stylesheet" type="text/css"/>
universe@390 10 <script type="text/javascript" src="jquery.js"></script>
universe@390 11 <script type="text/javascript" src="dynsections.js"></script>
universe@390 12 <link href="search/search.css" rel="stylesheet" type="text/css"/>
universe@390 13 <script type="text/javascript" src="search/searchdata.js"></script>
universe@390 14 <script type="text/javascript" src="search/search.js"></script>
universe@390 15 <link href="doxygen.css" rel="stylesheet" type="text/css" />
universe@390 16 </head>
universe@390 17 <body>
universe@390 18 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
universe@390 19 <div id="titlearea">
universe@390 20 <table cellspacing="0" cellpadding="0">
universe@390 21 <tbody>
universe@390 22 <tr style="height: 56px;">
universe@390 23 <td id="projectlogo"><img alt="Logo" src="uaplogo.png"/></td>
universe@390 24 <td id="projectalign" style="padding-left: 0.5em;">
universe@390 25 <div id="projectname">ucx
universe@390 26 </div>
universe@390 27 <div id="projectbrief">UAP Common Extensions</div>
universe@390 28 </td>
universe@390 29 </tr>
universe@390 30 </tbody>
universe@390 31 </table>
universe@390 32 </div>
universe@390 33 <!-- end header part -->
universe@390 34 <!-- Generated by Doxygen 1.8.13 -->
universe@390 35 <script type="text/javascript">
universe@390 36 var searchBox = new SearchBox("searchBox", "search",false,'Search');
universe@390 37 </script>
universe@390 38 <script type="text/javascript" src="menudata.js"></script>
universe@390 39 <script type="text/javascript" src="menu.js"></script>
universe@390 40 <script type="text/javascript">
universe@390 41 $(function() {
universe@390 42 initMenu('',true,false,'search.php','Search');
universe@390 43 $(document).ready(function() { init_search(); });
universe@390 44 });
universe@390 45 </script>
universe@390 46 <div id="main-nav"></div>
universe@390 47 <!-- window showing the filter options -->
universe@390 48 <div id="MSearchSelectWindow"
universe@390 49 onmouseover="return searchBox.OnSearchSelectShow()"
universe@390 50 onmouseout="return searchBox.OnSearchSelectHide()"
universe@390 51 onkeydown="return searchBox.OnSearchSelectKey(event)">
universe@390 52 </div>
universe@390 53
universe@390 54 <!-- iframe showing the search results (closed by default) -->
universe@390 55 <div id="MSearchResultsWindow">
universe@390 56 <iframe src="javascript:void(0)" frameborder="0"
universe@390 57 name="MSearchResults" id="MSearchResults">
universe@390 58 </iframe>
universe@390 59 </div>
universe@390 60
universe@390 61 <div id="nav-path" class="navpath">
universe@390 62 <ul>
universe@390 63 <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_69f4ea29401808fe6229564976cde3ce.html">ucx</a></li> </ul>
universe@390 64 </div>
universe@390 65 </div><!-- top -->
universe@390 66 <div class="header">
universe@390 67 <div class="summary">
universe@390 68 <a href="#nested-classes">Data Structures</a> &#124;
universe@390 69 <a href="#define-members">Macros</a> &#124;
universe@390 70 <a href="#func-members">Functions</a> </div>
universe@390 71 <div class="headertitle">
universe@390 72 <div class="title">string.h File Reference</div> </div>
universe@390 73 </div><!--header-->
universe@390 74 <div class="contents">
universe@390 75
universe@390 76 <p>Bounded string implementation.
universe@390 77 <a href="#details">More...</a></p>
universe@390 78 <div class="textblock"><code>#include &quot;<a class="el" href="ucx_8h_source.html">ucx.h</a>&quot;</code><br />
universe@390 79 <code>#include &quot;<a class="el" href="allocator_8h_source.html">allocator.h</a>&quot;</code><br />
universe@390 80 <code>#include &lt;stddef.h&gt;</code><br />
universe@390 81 </div>
universe@390 82 <p><a href="string_8h_source.html">Go to the source code of this file.</a></p>
universe@390 83 <table class="memberdecls">
universe@390 84 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
universe@390 85 Data Structures</h2></td></tr>
universe@390 86 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsstr__t.html">sstr_t</a></td></tr>
universe@390 87 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The UCX string structure. <a href="structsstr__t.html#details">More...</a><br /></td></tr>
universe@390 88 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 89 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structscstr__t.html">scstr_t</a></td></tr>
universe@390 90 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The UCX string structure for immutable (constant) strings. <a href="structscstr__t.html#details">More...</a><br /></td></tr>
universe@390 91 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 92 </table><table class="memberdecls">
universe@390 93 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
universe@390 94 Macros</h2></td></tr>
universe@390 95 <tr class="memitem:a9037956cca97a4e84b642f17f3d10378"><td class="memItemLeft" align="right" valign="top"><a id="a9037956cca97a4e84b642f17f3d10378"></a>
universe@390 96 #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a9037956cca97a4e84b642f17f3d10378">ST</a>(s)&#160;&#160;&#160;{ s, sizeof(s)-1 }</td></tr>
universe@390 97 <tr class="memdesc:a9037956cca97a4e84b642f17f3d10378"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shortcut for a <code><a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> struct</code> or <code><a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a> struct</code> literal. <br /></td></tr>
universe@390 98 <tr class="separator:a9037956cca97a4e84b642f17f3d10378"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 99 <tr class="memitem:a8fa17c8cf4c36df48f4108c36da8573e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a8fa17c8cf4c36df48f4108c36da8573e">S</a>(s)&#160;&#160;&#160;<a class="el" href="string_8h.html#a2744c38ac44abf3e01fa059056dcf36c">sstrn</a>(s, sizeof(s)-1)</td></tr>
universe@390 100 <tr class="memdesc:a8fa17c8cf4c36df48f4108c36da8573e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shortcut for the conversion of a C string to a <code><a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a></code>. <a href="#a8fa17c8cf4c36df48f4108c36da8573e">More...</a><br /></td></tr>
universe@390 101 <tr class="separator:a8fa17c8cf4c36df48f4108c36da8573e"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 102 <tr class="memitem:a7d261dd0bc358c957a368bc058c1ce53"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a7d261dd0bc358c957a368bc058c1ce53">SC</a>(s)&#160;&#160;&#160;<a class="el" href="string_8h.html#ae594f6e222ea394cef6a26c0dfad000d">scstrn</a>(s, sizeof(s)-1)</td></tr>
universe@390 103 <tr class="memdesc:a7d261dd0bc358c957a368bc058c1ce53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shortcut for the conversion of a C string to a <code><a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a></code>. <a href="#a7d261dd0bc358c957a368bc058c1ce53">More...</a><br /></td></tr>
universe@390 104 <tr class="separator:a7d261dd0bc358c957a368bc058c1ce53"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 105 <tr class="memitem:a23ed51e87385886bb65e8cd19c839362"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a23ed51e87385886bb65e8cd19c839362">SFMT</a>(s)&#160;&#160;&#160;(int) (s).length, (s).ptr</td></tr>
universe@390 106 <tr class="memdesc:a23ed51e87385886bb65e8cd19c839362"><td class="mdescLeft">&#160;</td><td class="mdescRight">Expands a <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> or <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a> to printf arguments. <a href="#a23ed51e87385886bb65e8cd19c839362">More...</a><br /></td></tr>
universe@390 107 <tr class="separator:a23ed51e87385886bb65e8cd19c839362"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 108 <tr class="memitem:a7d5bc48708405a28b23667e32dfcecae"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a7d5bc48708405a28b23667e32dfcecae">PRIsstr</a>&#160;&#160;&#160;&quot;.*s&quot;</td></tr>
universe@390 109 <tr class="memdesc:a7d5bc48708405a28b23667e32dfcecae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Format specifier for a <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> or <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a>. <a href="#a7d5bc48708405a28b23667e32dfcecae">More...</a><br /></td></tr>
universe@390 110 <tr class="separator:a7d5bc48708405a28b23667e32dfcecae"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 111 <tr class="memitem:ad4293350a9b39a23a6546bd0fef2aeed"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(str)&#160;&#160;&#160;<a class="el" href="string_8h.html#aedeb5d7bddda54116101a8d68af8c56d">ucx_ss2c_s</a>(str)</td></tr>
universe@390 112 <tr class="memdesc:ad4293350a9b39a23a6546bd0fef2aeed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a UCX string to an immutable UCX string (<a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a>). <a href="#ad4293350a9b39a23a6546bd0fef2aeed">More...</a><br /></td></tr>
universe@390 113 <tr class="separator:ad4293350a9b39a23a6546bd0fef2aeed"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 114 <tr class="memitem:a33fa945acc5ac2ce962e5ef13cf1638c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a33fa945acc5ac2ce962e5ef13cf1638c">sstrnlen</a>(count, ...)&#160;&#160;&#160;<a class="el" href="string_8h.html#ac1b000030d6d197eec48c15a182055d5">scstrnlen</a>(count, __VA_ARGS__)</td></tr>
universe@390 115 <tr class="memdesc:a33fa945acc5ac2ce962e5ef13cf1638c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the accumulated length of all specified strings. <a href="#a33fa945acc5ac2ce962e5ef13cf1638c">More...</a><br /></td></tr>
universe@390 116 <tr class="separator:a33fa945acc5ac2ce962e5ef13cf1638c"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 117 <tr class="memitem:a6af8a4c347c7fdb5980d4c4803be2759"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a6af8a4c347c7fdb5980d4c4803be2759">sstrcat</a>(count, s1, ...)&#160;&#160;&#160;<a class="el" href="string_8h.html#a7376842c19e954b49215da81ef76ac0c">scstrcat</a>(count, <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(s1), __VA_ARGS__)</td></tr>
universe@390 118 <tr class="memdesc:a6af8a4c347c7fdb5980d4c4803be2759"><td class="mdescLeft">&#160;</td><td class="mdescRight">Concatenates two or more strings. <a href="#a6af8a4c347c7fdb5980d4c4803be2759">More...</a><br /></td></tr>
universe@390 119 <tr class="separator:a6af8a4c347c7fdb5980d4c4803be2759"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 120 <tr class="memitem:a6068d460f9bc05962666a917d26568b3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a6068d460f9bc05962666a917d26568b3">sstrcat_a</a>(alloc, count, s1, ...)&#160;&#160;&#160;<a class="el" href="string_8h.html#abacce4cbd6f70fcb6453904ef08b02e9">scstrcat_a</a>(alloc, count, <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(s1), __VA_ARGS__)</td></tr>
universe@390 121 <tr class="memdesc:a6068d460f9bc05962666a917d26568b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Concatenates two or more strings using a <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a>. <a href="#a6068d460f9bc05962666a917d26568b3">More...</a><br /></td></tr>
universe@390 122 <tr class="separator:a6068d460f9bc05962666a917d26568b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 123 <tr class="memitem:a9d03be026afa9447c52bb34b9e3b895a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a9d03be026afa9447c52bb34b9e3b895a">sstrstr</a>(string, match)&#160;&#160;&#160;<a class="el" href="string_8h.html#aa4362cb36c6629f9d8484739fd827748">scstrsstr</a>(string, <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(match))</td></tr>
universe@390 124 <tr class="memdesc:a9d03be026afa9447c52bb34b9e3b895a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a substring starting at the location of the first occurrence of the specified string. <a href="#a9d03be026afa9447c52bb34b9e3b895a">More...</a><br /></td></tr>
universe@390 125 <tr class="separator:a9d03be026afa9447c52bb34b9e3b895a"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 126 <tr class="memitem:aa696932213265e10f864678686f4ccde"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#aa696932213265e10f864678686f4ccde">sstrscstr</a>(string, match)&#160;&#160;&#160;<a class="el" href="string_8h.html#a54f256c3abe811c52d58b4ff1b23f051">scstrscstr</a>(string, <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(match))</td></tr>
universe@390 127 <tr class="memdesc:aa696932213265e10f864678686f4ccde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an immutable substring starting at the location of the first occurrence of the specified immutable string. <a href="#aa696932213265e10f864678686f4ccde">More...</a><br /></td></tr>
universe@390 128 <tr class="separator:aa696932213265e10f864678686f4ccde"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 129 <tr class="memitem:aa929984004c3576bfafb95031aca8eb7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#aa929984004c3576bfafb95031aca8eb7">sstrsplit</a>(string, delim, count)&#160;&#160;&#160;<a class="el" href="string_8h.html#ae71cac352b00230848bde358f0fb05ea">scstrsplit</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string), <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(delim), count)</td></tr>
universe@390 130 <tr class="memdesc:aa929984004c3576bfafb95031aca8eb7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Splits a string into parts by using a delimiter string. <a href="#aa929984004c3576bfafb95031aca8eb7">More...</a><br /></td></tr>
universe@390 131 <tr class="separator:aa929984004c3576bfafb95031aca8eb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 132 <tr class="memitem:ac9f69fa3a17e26a3a5f9d985b5844601"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#ac9f69fa3a17e26a3a5f9d985b5844601">sstrsplit_a</a>(allocator, string, delim, count)&#160;&#160;&#160;<a class="el" href="string_8h.html#a52906455ae530c9cdc6812c8e6d9bdef">scstrsplit_a</a>(allocator, <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string), <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(delim), count)</td></tr>
universe@390 133 <tr class="memdesc:ac9f69fa3a17e26a3a5f9d985b5844601"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performing <a class="el" href="string_8h.html#aa929984004c3576bfafb95031aca8eb7" title="Splits a string into parts by using a delimiter string. ">sstrsplit()</a> using a <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a>. <a href="#ac9f69fa3a17e26a3a5f9d985b5844601">More...</a><br /></td></tr>
universe@390 134 <tr class="separator:ac9f69fa3a17e26a3a5f9d985b5844601"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 135 <tr class="memitem:a7ae7156c8de57454ca38d306100b8160"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a7ae7156c8de57454ca38d306100b8160">sstrcmp</a>(s1, s2)&#160;&#160;&#160;<a class="el" href="string_8h.html#af35272a8e5408c88ed3e25a3a98f0a82">scstrcmp</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(s1), <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(s2))</td></tr>
universe@390 136 <tr class="memdesc:a7ae7156c8de57454ca38d306100b8160"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two UCX strings with standard <code>memcmp()</code>. <a href="#a7ae7156c8de57454ca38d306100b8160">More...</a><br /></td></tr>
universe@390 137 <tr class="separator:a7ae7156c8de57454ca38d306100b8160"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 138 <tr class="memitem:a81b0f6df794152c2038703d4e9d0ad59"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a81b0f6df794152c2038703d4e9d0ad59">sstrcasecmp</a>(s1, s2)&#160;&#160;&#160;<a class="el" href="string_8h.html#aca8142fb823d253054e17c17cfca05e0">scstrcasecmp</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(s1), <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(s2))</td></tr>
universe@390 139 <tr class="memdesc:a81b0f6df794152c2038703d4e9d0ad59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two UCX strings ignoring the case. <a href="#a81b0f6df794152c2038703d4e9d0ad59">More...</a><br /></td></tr>
universe@390 140 <tr class="separator:a81b0f6df794152c2038703d4e9d0ad59"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 141 <tr class="memitem:accbfd2b459a028d7af9fb7df6f977d80"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#accbfd2b459a028d7af9fb7df6f977d80">sstrdup</a>(string)&#160;&#160;&#160;<a class="el" href="string_8h.html#a97dccce03af419596dbdd592ca46a164">scstrdup</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string))</td></tr>
universe@390 142 <tr class="memdesc:accbfd2b459a028d7af9fb7df6f977d80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a duplicate of the specified string. <a href="#accbfd2b459a028d7af9fb7df6f977d80">More...</a><br /></td></tr>
universe@390 143 <tr class="separator:accbfd2b459a028d7af9fb7df6f977d80"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 144 <tr class="memitem:a8d098baada4ea9ad5d8b6343b5aec007"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a8d098baada4ea9ad5d8b6343b5aec007">sstrdup_a</a>(allocator, string)&#160;&#160;&#160;<a class="el" href="string_8h.html#a8fe58921f51eb1fde038472377e63014">scstrdup_a</a>(allocator, <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string))</td></tr>
universe@390 145 <tr class="memdesc:a8d098baada4ea9ad5d8b6343b5aec007"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a duplicate of the specified string using a <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a>. <a href="#a8d098baada4ea9ad5d8b6343b5aec007">More...</a><br /></td></tr>
universe@390 146 <tr class="separator:a8d098baada4ea9ad5d8b6343b5aec007"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 147 <tr class="memitem:a7d73b66256384b26927e787318fdefa2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a7d73b66256384b26927e787318fdefa2">sstrprefix</a>(string, prefix)&#160;&#160;&#160;<a class="el" href="string_8h.html#a599ddc2f88dd1df68b72eefd91347393">scstrprefix</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string), <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(prefix))</td></tr>
universe@390 148 <tr class="memdesc:a7d73b66256384b26927e787318fdefa2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks, if a string has a specific prefix. <a href="#a7d73b66256384b26927e787318fdefa2">More...</a><br /></td></tr>
universe@390 149 <tr class="separator:a7d73b66256384b26927e787318fdefa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 150 <tr class="memitem:ac6a5246f26be2e8a5f34d8995b7ec14e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#ac6a5246f26be2e8a5f34d8995b7ec14e">sstrsuffix</a>(string, suffix)&#160;&#160;&#160;<a class="el" href="string_8h.html#a1f0ae316a2afe85d5b4655e6ece6721a">scstrsuffix</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string), <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(suffix))</td></tr>
universe@390 151 <tr class="memdesc:ac6a5246f26be2e8a5f34d8995b7ec14e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks, if a string has a specific suffix. <a href="#ac6a5246f26be2e8a5f34d8995b7ec14e">More...</a><br /></td></tr>
universe@390 152 <tr class="separator:ac6a5246f26be2e8a5f34d8995b7ec14e"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 153 <tr class="memitem:acd3dc64e90db9b4046e14f115a815ff4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#acd3dc64e90db9b4046e14f115a815ff4">sstrcaseprefix</a>(string, prefix)&#160;&#160;&#160;<a class="el" href="string_8h.html#a3718ef4aa1e86cdb26bda2f07fb585df">scstrcaseprefix</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string), <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(prefix))</td></tr>
universe@390 154 <tr class="memdesc:acd3dc64e90db9b4046e14f115a815ff4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks, if a string has a specific prefix, ignoring the case. <a href="#acd3dc64e90db9b4046e14f115a815ff4">More...</a><br /></td></tr>
universe@390 155 <tr class="separator:acd3dc64e90db9b4046e14f115a815ff4"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 156 <tr class="memitem:a57eabd4862d531dd685bbf2feb8468bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a57eabd4862d531dd685bbf2feb8468bf">sstrcasesuffix</a>(string, suffix)&#160;&#160;&#160;<a class="el" href="string_8h.html#a6edb4b85f2b9efe79db7ffe6eccd7bc3">scstrcasesuffix</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string), <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(suffix))</td></tr>
universe@390 157 <tr class="memdesc:a57eabd4862d531dd685bbf2feb8468bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks, if a string has a specific suffix, ignoring the case. <a href="#a57eabd4862d531dd685bbf2feb8468bf">More...</a><br /></td></tr>
universe@390 158 <tr class="separator:a57eabd4862d531dd685bbf2feb8468bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 159 <tr class="memitem:a89343ea3e719f00ee802b557db57b769"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a89343ea3e719f00ee802b557db57b769">sstrlower</a>(string)&#160;&#160;&#160;<a class="el" href="string_8h.html#abccf198bea3186ff2abb080cc88dcae6">scstrlower</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string))</td></tr>
universe@390 160 <tr class="memdesc:a89343ea3e719f00ee802b557db57b769"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a lower case version of a string. <a href="#a89343ea3e719f00ee802b557db57b769">More...</a><br /></td></tr>
universe@390 161 <tr class="separator:a89343ea3e719f00ee802b557db57b769"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 162 <tr class="memitem:a4bb4742fe71115f493991d307cb22b23"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a4bb4742fe71115f493991d307cb22b23">sstrlower_a</a>(allocator, string)&#160;&#160;&#160;<a class="el" href="string_8h.html#a3cf1e557df7ab58d03c78832c4060276">scstrlower_a</a>(allocator, <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string))</td></tr>
universe@390 163 <tr class="memdesc:a4bb4742fe71115f493991d307cb22b23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a lower case version of a string. <a href="#a4bb4742fe71115f493991d307cb22b23">More...</a><br /></td></tr>
universe@390 164 <tr class="separator:a4bb4742fe71115f493991d307cb22b23"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 165 <tr class="memitem:a084fe5a3a90d6fb6b15ecda03bb30824"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a084fe5a3a90d6fb6b15ecda03bb30824">sstrupper</a>(string)&#160;&#160;&#160;<a class="el" href="string_8h.html#af3dd09ec9d11162fe0075f4e60f41240">scstrupper</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string))</td></tr>
universe@390 166 <tr class="memdesc:a084fe5a3a90d6fb6b15ecda03bb30824"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a upper case version of a string. <a href="#a084fe5a3a90d6fb6b15ecda03bb30824">More...</a><br /></td></tr>
universe@390 167 <tr class="separator:a084fe5a3a90d6fb6b15ecda03bb30824"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 168 <tr class="memitem:a5f0dd83c0176b812fb428004b2877a34"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a5f0dd83c0176b812fb428004b2877a34">sstrupper_a</a>(allocator, string)&#160;&#160;&#160;<a class="el" href="string_8h.html#aea94613eb74668cc05d365803d32bfad">scstrupper_a</a>(allocator, string)</td></tr>
universe@390 169 <tr class="memdesc:a5f0dd83c0176b812fb428004b2877a34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a upper case version of a string. <a href="#a5f0dd83c0176b812fb428004b2877a34">More...</a><br /></td></tr>
universe@390 170 <tr class="separator:a5f0dd83c0176b812fb428004b2877a34"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 171 </table><table class="memberdecls">
universe@390 172 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
universe@390 173 Functions</h2></td></tr>
universe@390 174 <tr class="memitem:a69d5e3eeec783cc43314df71248768f5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a69d5e3eeec783cc43314df71248768f5">ucx_sc2sc</a> (<a class="el" href="structscstr__t.html">scstr_t</a> str)</td></tr>
universe@390 175 <tr class="memdesc:a69d5e3eeec783cc43314df71248768f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">One of two type adjustment functions that return an <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a>. <a href="#a69d5e3eeec783cc43314df71248768f5">More...</a><br /></td></tr>
universe@390 176 <tr class="separator:a69d5e3eeec783cc43314df71248768f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 177 <tr class="memitem:a9ce5ad1b2aa2dbeba204d452c2e64359"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a9ce5ad1b2aa2dbeba204d452c2e64359">ucx_ss2sc</a> (<a class="el" href="structsstr__t.html">sstr_t</a> str)</td></tr>
universe@390 178 <tr class="memdesc:a9ce5ad1b2aa2dbeba204d452c2e64359"><td class="mdescLeft">&#160;</td><td class="mdescRight">One of two type adjustment functions that return an <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a>. <a href="#a9ce5ad1b2aa2dbeba204d452c2e64359">More...</a><br /></td></tr>
universe@390 179 <tr class="separator:a9ce5ad1b2aa2dbeba204d452c2e64359"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 180 <tr class="memitem:aedeb5d7bddda54116101a8d68af8c56d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#aedeb5d7bddda54116101a8d68af8c56d">ucx_ss2c_s</a> ()</td></tr>
universe@390 181 <tr class="memdesc:aedeb5d7bddda54116101a8d68af8c56d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a UCX string to an immutable UCX string (<a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a>). <a href="#aedeb5d7bddda54116101a8d68af8c56d">More...</a><br /></td></tr>
universe@390 182 <tr class="separator:aedeb5d7bddda54116101a8d68af8c56d"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 183 <tr class="memitem:a539eb7059251a051ee5d179526a23e9a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a539eb7059251a051ee5d179526a23e9a">sstr</a> (char *cstring)</td></tr>
universe@390 184 <tr class="memdesc:a539eb7059251a051ee5d179526a23e9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> based on a C string. <a href="#a539eb7059251a051ee5d179526a23e9a">More...</a><br /></td></tr>
universe@390 185 <tr class="separator:a539eb7059251a051ee5d179526a23e9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 186 <tr class="memitem:a2744c38ac44abf3e01fa059056dcf36c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a2744c38ac44abf3e01fa059056dcf36c">sstrn</a> (char *cstring, size_t length)</td></tr>
universe@390 187 <tr class="memdesc:a2744c38ac44abf3e01fa059056dcf36c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> of the specified length based on a C string. <a href="#a2744c38ac44abf3e01fa059056dcf36c">More...</a><br /></td></tr>
universe@390 188 <tr class="separator:a2744c38ac44abf3e01fa059056dcf36c"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 189 <tr class="memitem:a2b1d6f1eca1c1549f37107b9c026c5a6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a2b1d6f1eca1c1549f37107b9c026c5a6">scstr</a> (const char *cstring)</td></tr>
universe@390 190 <tr class="memdesc:a2b1d6f1eca1c1549f37107b9c026c5a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a> based on a constant C string. <a href="#a2b1d6f1eca1c1549f37107b9c026c5a6">More...</a><br /></td></tr>
universe@390 191 <tr class="separator:a2b1d6f1eca1c1549f37107b9c026c5a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 192 <tr class="memitem:ae594f6e222ea394cef6a26c0dfad000d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#ae594f6e222ea394cef6a26c0dfad000d">scstrn</a> (const char *cstring, size_t length)</td></tr>
universe@390 193 <tr class="memdesc:ae594f6e222ea394cef6a26c0dfad000d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a> of the specified length based on a constant C string. <a href="#ae594f6e222ea394cef6a26c0dfad000d">More...</a><br /></td></tr>
universe@390 194 <tr class="separator:ae594f6e222ea394cef6a26c0dfad000d"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 195 <tr class="memitem:ac1b000030d6d197eec48c15a182055d5"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#ac1b000030d6d197eec48c15a182055d5">scstrnlen</a> (size_t count,...)</td></tr>
universe@390 196 <tr class="memdesc:ac1b000030d6d197eec48c15a182055d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the accumulated length of all specified strings. <a href="#ac1b000030d6d197eec48c15a182055d5">More...</a><br /></td></tr>
universe@390 197 <tr class="separator:ac1b000030d6d197eec48c15a182055d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 198 <tr class="memitem:a7376842c19e954b49215da81ef76ac0c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a7376842c19e954b49215da81ef76ac0c">scstrcat</a> (size_t count, <a class="el" href="structscstr__t.html">scstr_t</a> s1,...)</td></tr>
universe@390 199 <tr class="memdesc:a7376842c19e954b49215da81ef76ac0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Concatenates two or more strings. <a href="#a7376842c19e954b49215da81ef76ac0c">More...</a><br /></td></tr>
universe@390 200 <tr class="separator:a7376842c19e954b49215da81ef76ac0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 201 <tr class="memitem:abacce4cbd6f70fcb6453904ef08b02e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#abacce4cbd6f70fcb6453904ef08b02e9">scstrcat_a</a> (<a class="el" href="structUcxAllocator.html">UcxAllocator</a> *alloc, size_t count, <a class="el" href="structscstr__t.html">scstr_t</a> s1,...)</td></tr>
universe@390 202 <tr class="memdesc:abacce4cbd6f70fcb6453904ef08b02e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Concatenates two or more strings using a <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a>. <a href="#abacce4cbd6f70fcb6453904ef08b02e9">More...</a><br /></td></tr>
universe@390 203 <tr class="separator:abacce4cbd6f70fcb6453904ef08b02e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 204 <tr class="memitem:a5eb9e0e1f26cf7fbecc038cd90e8b258"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a5eb9e0e1f26cf7fbecc038cd90e8b258">sstrsubs</a> (<a class="el" href="structsstr__t.html">sstr_t</a> string, size_t start)</td></tr>
universe@390 205 <tr class="memdesc:a5eb9e0e1f26cf7fbecc038cd90e8b258"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a substring starting at the specified location. <a href="#a5eb9e0e1f26cf7fbecc038cd90e8b258">More...</a><br /></td></tr>
universe@390 206 <tr class="separator:a5eb9e0e1f26cf7fbecc038cd90e8b258"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 207 <tr class="memitem:a78925c91af54f23cebd20ff99ef4331a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a78925c91af54f23cebd20ff99ef4331a">sstrsubsl</a> (<a class="el" href="structsstr__t.html">sstr_t</a> string, size_t start, size_t length)</td></tr>
universe@390 208 <tr class="memdesc:a78925c91af54f23cebd20ff99ef4331a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a substring with the given length starting at the specified location. <a href="#a78925c91af54f23cebd20ff99ef4331a">More...</a><br /></td></tr>
universe@390 209 <tr class="separator:a78925c91af54f23cebd20ff99ef4331a"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 210 <tr class="memitem:a9a6c8d8db0dda0037c3c852cce1a5060"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a9a6c8d8db0dda0037c3c852cce1a5060">scstrsubs</a> (<a class="el" href="structscstr__t.html">scstr_t</a> string, size_t start)</td></tr>
universe@390 211 <tr class="memdesc:a9a6c8d8db0dda0037c3c852cce1a5060"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a substring of an immutable string starting at the specified location. <a href="#a9a6c8d8db0dda0037c3c852cce1a5060">More...</a><br /></td></tr>
universe@390 212 <tr class="separator:a9a6c8d8db0dda0037c3c852cce1a5060"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 213 <tr class="memitem:ad50f0f67b906fad0744f46bcb51e144b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#ad50f0f67b906fad0744f46bcb51e144b">scstrsubsl</a> (<a class="el" href="structscstr__t.html">scstr_t</a> string, size_t start, size_t length)</td></tr>
universe@390 214 <tr class="memdesc:ad50f0f67b906fad0744f46bcb51e144b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a substring of an immutable string with a maximum length starting at the specified location. <a href="#ad50f0f67b906fad0744f46bcb51e144b">More...</a><br /></td></tr>
universe@390 215 <tr class="separator:ad50f0f67b906fad0744f46bcb51e144b"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 216 <tr class="memitem:af80898a0b75955eb2579298c3ae2c481"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#af80898a0b75955eb2579298c3ae2c481">sstrchr</a> (<a class="el" href="structsstr__t.html">sstr_t</a> string, int chr)</td></tr>
universe@390 217 <tr class="memdesc:af80898a0b75955eb2579298c3ae2c481"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a substring starting at the location of the first occurrence of the specified character. <a href="#af80898a0b75955eb2579298c3ae2c481">More...</a><br /></td></tr>
universe@390 218 <tr class="separator:af80898a0b75955eb2579298c3ae2c481"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 219 <tr class="memitem:adae3f59957ca328e1da5285cb8b02a72"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#adae3f59957ca328e1da5285cb8b02a72">sstrrchr</a> (<a class="el" href="structsstr__t.html">sstr_t</a> string, int chr)</td></tr>
universe@390 220 <tr class="memdesc:adae3f59957ca328e1da5285cb8b02a72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a substring starting at the location of the last occurrence of the specified character. <a href="#adae3f59957ca328e1da5285cb8b02a72">More...</a><br /></td></tr>
universe@390 221 <tr class="separator:adae3f59957ca328e1da5285cb8b02a72"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 222 <tr class="memitem:a5836d6a7a744791c35e5c17bdc394a87"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a5836d6a7a744791c35e5c17bdc394a87">scstrchr</a> (<a class="el" href="structscstr__t.html">scstr_t</a> string, int chr)</td></tr>
universe@390 223 <tr class="memdesc:a5836d6a7a744791c35e5c17bdc394a87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an immutable substring starting at the location of the first occurrence of the specified character. <a href="#a5836d6a7a744791c35e5c17bdc394a87">More...</a><br /></td></tr>
universe@390 224 <tr class="separator:a5836d6a7a744791c35e5c17bdc394a87"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 225 <tr class="memitem:ae389835b97cd9382e7d6a6a075323376"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#ae389835b97cd9382e7d6a6a075323376">scstrrchr</a> (<a class="el" href="structscstr__t.html">scstr_t</a> string, int chr)</td></tr>
universe@390 226 <tr class="memdesc:ae389835b97cd9382e7d6a6a075323376"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an immutable substring starting at the location of the last occurrence of the specified character. <a href="#ae389835b97cd9382e7d6a6a075323376">More...</a><br /></td></tr>
universe@390 227 <tr class="separator:ae389835b97cd9382e7d6a6a075323376"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 228 <tr class="memitem:aa4362cb36c6629f9d8484739fd827748"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#aa4362cb36c6629f9d8484739fd827748">scstrsstr</a> (<a class="el" href="structsstr__t.html">sstr_t</a> string, <a class="el" href="structscstr__t.html">scstr_t</a> match)</td></tr>
universe@390 229 <tr class="memdesc:aa4362cb36c6629f9d8484739fd827748"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a substring starting at the location of the first occurrence of the specified string. <a href="#aa4362cb36c6629f9d8484739fd827748">More...</a><br /></td></tr>
universe@390 230 <tr class="separator:aa4362cb36c6629f9d8484739fd827748"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 231 <tr class="memitem:a54f256c3abe811c52d58b4ff1b23f051"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a54f256c3abe811c52d58b4ff1b23f051">scstrscstr</a> (<a class="el" href="structscstr__t.html">scstr_t</a> string, <a class="el" href="structscstr__t.html">scstr_t</a> match)</td></tr>
universe@390 232 <tr class="memdesc:a54f256c3abe811c52d58b4ff1b23f051"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an immutable substring starting at the location of the first occurrence of the specified immutable string. <a href="#a54f256c3abe811c52d58b4ff1b23f051">More...</a><br /></td></tr>
universe@390 233 <tr class="separator:a54f256c3abe811c52d58b4ff1b23f051"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 234 <tr class="memitem:ae71cac352b00230848bde358f0fb05ea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#ae71cac352b00230848bde358f0fb05ea">scstrsplit</a> (<a class="el" href="structscstr__t.html">scstr_t</a> string, <a class="el" href="structscstr__t.html">scstr_t</a> delim, ssize_t *count)</td></tr>
universe@390 235 <tr class="memdesc:ae71cac352b00230848bde358f0fb05ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Splits a string into parts by using a delimiter string. <a href="#ae71cac352b00230848bde358f0fb05ea">More...</a><br /></td></tr>
universe@390 236 <tr class="separator:ae71cac352b00230848bde358f0fb05ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 237 <tr class="memitem:a52906455ae530c9cdc6812c8e6d9bdef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a52906455ae530c9cdc6812c8e6d9bdef">scstrsplit_a</a> (<a class="el" href="structUcxAllocator.html">UcxAllocator</a> *allocator, <a class="el" href="structscstr__t.html">scstr_t</a> string, <a class="el" href="structscstr__t.html">scstr_t</a> delim, ssize_t *count)</td></tr>
universe@390 238 <tr class="memdesc:a52906455ae530c9cdc6812c8e6d9bdef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performing <a class="el" href="string_8h.html#ae71cac352b00230848bde358f0fb05ea" title="Splits a string into parts by using a delimiter string. ">scstrsplit()</a> using a <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a>. <a href="#a52906455ae530c9cdc6812c8e6d9bdef">More...</a><br /></td></tr>
universe@390 239 <tr class="separator:a52906455ae530c9cdc6812c8e6d9bdef"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 240 <tr class="memitem:af35272a8e5408c88ed3e25a3a98f0a82"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#af35272a8e5408c88ed3e25a3a98f0a82">scstrcmp</a> (<a class="el" href="structscstr__t.html">scstr_t</a> s1, <a class="el" href="structscstr__t.html">scstr_t</a> s2)</td></tr>
universe@390 241 <tr class="memdesc:af35272a8e5408c88ed3e25a3a98f0a82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two UCX strings with standard <code>memcmp()</code>. <a href="#af35272a8e5408c88ed3e25a3a98f0a82">More...</a><br /></td></tr>
universe@390 242 <tr class="separator:af35272a8e5408c88ed3e25a3a98f0a82"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 243 <tr class="memitem:aca8142fb823d253054e17c17cfca05e0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#aca8142fb823d253054e17c17cfca05e0">scstrcasecmp</a> (<a class="el" href="structscstr__t.html">scstr_t</a> s1, <a class="el" href="structscstr__t.html">scstr_t</a> s2)</td></tr>
universe@390 244 <tr class="memdesc:aca8142fb823d253054e17c17cfca05e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two UCX strings ignoring the case. <a href="#aca8142fb823d253054e17c17cfca05e0">More...</a><br /></td></tr>
universe@390 245 <tr class="separator:aca8142fb823d253054e17c17cfca05e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 246 <tr class="memitem:a97dccce03af419596dbdd592ca46a164"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a97dccce03af419596dbdd592ca46a164">scstrdup</a> (<a class="el" href="structscstr__t.html">scstr_t</a> string)</td></tr>
universe@390 247 <tr class="memdesc:a97dccce03af419596dbdd592ca46a164"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a duplicate of the specified string. <a href="#a97dccce03af419596dbdd592ca46a164">More...</a><br /></td></tr>
universe@390 248 <tr class="separator:a97dccce03af419596dbdd592ca46a164"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 249 <tr class="memitem:a8fe58921f51eb1fde038472377e63014"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a8fe58921f51eb1fde038472377e63014">scstrdup_a</a> (<a class="el" href="structUcxAllocator.html">UcxAllocator</a> *allocator, <a class="el" href="structscstr__t.html">scstr_t</a> string)</td></tr>
universe@390 250 <tr class="memdesc:a8fe58921f51eb1fde038472377e63014"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a duplicate of the specified string using a <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a>. <a href="#a8fe58921f51eb1fde038472377e63014">More...</a><br /></td></tr>
universe@390 251 <tr class="separator:a8fe58921f51eb1fde038472377e63014"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 252 <tr class="memitem:ae2d6da564d3fce51f2e0cac580fdbc56"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#ae2d6da564d3fce51f2e0cac580fdbc56">sstrtrim</a> (<a class="el" href="structsstr__t.html">sstr_t</a> string)</td></tr>
universe@390 253 <tr class="memdesc:ae2d6da564d3fce51f2e0cac580fdbc56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Omits leading and trailing spaces. <a href="#ae2d6da564d3fce51f2e0cac580fdbc56">More...</a><br /></td></tr>
universe@390 254 <tr class="separator:ae2d6da564d3fce51f2e0cac580fdbc56"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 255 <tr class="memitem:ad374b16eb1be8b48019debad9b9f268c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#ad374b16eb1be8b48019debad9b9f268c">scstrtrim</a> (<a class="el" href="structscstr__t.html">scstr_t</a> string)</td></tr>
universe@390 256 <tr class="memdesc:ad374b16eb1be8b48019debad9b9f268c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Omits leading and trailing spaces. <a href="#ad374b16eb1be8b48019debad9b9f268c">More...</a><br /></td></tr>
universe@390 257 <tr class="separator:ad374b16eb1be8b48019debad9b9f268c"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 258 <tr class="memitem:a599ddc2f88dd1df68b72eefd91347393"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a599ddc2f88dd1df68b72eefd91347393">scstrprefix</a> (<a class="el" href="structscstr__t.html">scstr_t</a> string, <a class="el" href="structscstr__t.html">scstr_t</a> prefix)</td></tr>
universe@390 259 <tr class="memdesc:a599ddc2f88dd1df68b72eefd91347393"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks, if a string has a specific prefix. <a href="#a599ddc2f88dd1df68b72eefd91347393">More...</a><br /></td></tr>
universe@390 260 <tr class="separator:a599ddc2f88dd1df68b72eefd91347393"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 261 <tr class="memitem:a1f0ae316a2afe85d5b4655e6ece6721a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a1f0ae316a2afe85d5b4655e6ece6721a">scstrsuffix</a> (<a class="el" href="structscstr__t.html">scstr_t</a> string, <a class="el" href="structscstr__t.html">scstr_t</a> suffix)</td></tr>
universe@390 262 <tr class="memdesc:a1f0ae316a2afe85d5b4655e6ece6721a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks, if a string has a specific suffix. <a href="#a1f0ae316a2afe85d5b4655e6ece6721a">More...</a><br /></td></tr>
universe@390 263 <tr class="separator:a1f0ae316a2afe85d5b4655e6ece6721a"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 264 <tr class="memitem:a3718ef4aa1e86cdb26bda2f07fb585df"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a3718ef4aa1e86cdb26bda2f07fb585df">scstrcaseprefix</a> (<a class="el" href="structscstr__t.html">scstr_t</a> string, <a class="el" href="structscstr__t.html">scstr_t</a> prefix)</td></tr>
universe@390 265 <tr class="memdesc:a3718ef4aa1e86cdb26bda2f07fb585df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks, if a string has a specific prefix, ignoring the case. <a href="#a3718ef4aa1e86cdb26bda2f07fb585df">More...</a><br /></td></tr>
universe@390 266 <tr class="separator:a3718ef4aa1e86cdb26bda2f07fb585df"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 267 <tr class="memitem:a6edb4b85f2b9efe79db7ffe6eccd7bc3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a6edb4b85f2b9efe79db7ffe6eccd7bc3">scstrcasesuffix</a> (<a class="el" href="structscstr__t.html">scstr_t</a> string, <a class="el" href="structscstr__t.html">scstr_t</a> suffix)</td></tr>
universe@390 268 <tr class="memdesc:a6edb4b85f2b9efe79db7ffe6eccd7bc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks, if a string has a specific suffix, ignoring the case. <a href="#a6edb4b85f2b9efe79db7ffe6eccd7bc3">More...</a><br /></td></tr>
universe@390 269 <tr class="separator:a6edb4b85f2b9efe79db7ffe6eccd7bc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 270 <tr class="memitem:abccf198bea3186ff2abb080cc88dcae6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#abccf198bea3186ff2abb080cc88dcae6">scstrlower</a> (<a class="el" href="structscstr__t.html">scstr_t</a> string)</td></tr>
universe@390 271 <tr class="memdesc:abccf198bea3186ff2abb080cc88dcae6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a lower case version of a string. <a href="#abccf198bea3186ff2abb080cc88dcae6">More...</a><br /></td></tr>
universe@390 272 <tr class="separator:abccf198bea3186ff2abb080cc88dcae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 273 <tr class="memitem:a3cf1e557df7ab58d03c78832c4060276"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a3cf1e557df7ab58d03c78832c4060276">scstrlower_a</a> (<a class="el" href="structUcxAllocator.html">UcxAllocator</a> *allocator, <a class="el" href="structscstr__t.html">scstr_t</a> string)</td></tr>
universe@390 274 <tr class="memdesc:a3cf1e557df7ab58d03c78832c4060276"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a lower case version of a string. <a href="#a3cf1e557df7ab58d03c78832c4060276">More...</a><br /></td></tr>
universe@390 275 <tr class="separator:a3cf1e557df7ab58d03c78832c4060276"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 276 <tr class="memitem:af3dd09ec9d11162fe0075f4e60f41240"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#af3dd09ec9d11162fe0075f4e60f41240">scstrupper</a> (<a class="el" href="structscstr__t.html">scstr_t</a> string)</td></tr>
universe@390 277 <tr class="memdesc:af3dd09ec9d11162fe0075f4e60f41240"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a upper case version of a string. <a href="#af3dd09ec9d11162fe0075f4e60f41240">More...</a><br /></td></tr>
universe@390 278 <tr class="separator:af3dd09ec9d11162fe0075f4e60f41240"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 279 <tr class="memitem:aea94613eb74668cc05d365803d32bfad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#aea94613eb74668cc05d365803d32bfad">scstrupper_a</a> (<a class="el" href="structUcxAllocator.html">UcxAllocator</a> *allocator, <a class="el" href="structscstr__t.html">scstr_t</a> string)</td></tr>
universe@390 280 <tr class="memdesc:aea94613eb74668cc05d365803d32bfad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a upper case version of a string. <a href="#aea94613eb74668cc05d365803d32bfad">More...</a><br /></td></tr>
universe@390 281 <tr class="separator:aea94613eb74668cc05d365803d32bfad"><td class="memSeparator" colspan="2">&#160;</td></tr>
universe@390 282 </table>
universe@390 283 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
universe@390 284 <div class="textblock"><p>Bounded string implementation. </p>
universe@390 285 <p>The UCX strings (<code><a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a></code>) provide an alternative to C strings. The main difference to C strings is, that <code><a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a></code> does <b>not need to be <code>NULL</code>-terminated</b>. Instead the length is stored within the structure.</p>
universe@390 286 <p>When using <code><a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a></code>, developers must be full aware of what type of string (<code>NULL</code>-terminated) or not) they are using, when accessing the <code>char* ptr</code> directly.</p>
universe@390 287 <p>The UCX string module provides some common string functions, known from standard libc, working with <code><a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a></code>.</p>
universe@390 288 <dl class="section author"><dt>Author</dt><dd>Mike Becker </dd>
universe@390 289 <dd>
universe@390 290 Olaf Wintermann </dd></dl>
universe@390 291 </div><h2 class="groupheader">Macro Definition Documentation</h2>
universe@390 292 <a id="a7d5bc48708405a28b23667e32dfcecae"></a>
universe@390 293 <h2 class="memtitle"><span class="permalink"><a href="#a7d5bc48708405a28b23667e32dfcecae">&#9670;&nbsp;</a></span>PRIsstr</h2>
universe@390 294
universe@390 295 <div class="memitem">
universe@390 296 <div class="memproto">
universe@390 297 <table class="memname">
universe@390 298 <tr>
universe@390 299 <td class="memname">#define PRIsstr&#160;&#160;&#160;&quot;.*s&quot;</td>
universe@390 300 </tr>
universe@390 301 </table>
universe@390 302 </div><div class="memdoc">
universe@390 303
universe@390 304 <p>Format specifier for a <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> or <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a>. </p>
universe@390 305
universe@390 306 </div>
universe@390 307 </div>
universe@390 308 <a id="a8fa17c8cf4c36df48f4108c36da8573e"></a>
universe@390 309 <h2 class="memtitle"><span class="permalink"><a href="#a8fa17c8cf4c36df48f4108c36da8573e">&#9670;&nbsp;</a></span>S</h2>
universe@390 310
universe@390 311 <div class="memitem">
universe@390 312 <div class="memproto">
universe@390 313 <table class="memname">
universe@390 314 <tr>
universe@390 315 <td class="memname">#define S</td>
universe@390 316 <td>(</td>
universe@390 317 <td class="paramtype">&#160;</td>
universe@390 318 <td class="paramname">s</td><td>)</td>
universe@390 319 <td>&#160;&#160;&#160;<a class="el" href="string_8h.html#a2744c38ac44abf3e01fa059056dcf36c">sstrn</a>(s, sizeof(s)-1)</td>
universe@390 320 </tr>
universe@390 321 </table>
universe@390 322 </div><div class="memdoc">
universe@390 323
universe@390 324 <p>Shortcut for the conversion of a C string to a <code><a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a></code>. </p>
universe@390 325
universe@390 326 </div>
universe@390 327 </div>
universe@390 328 <a id="a7d261dd0bc358c957a368bc058c1ce53"></a>
universe@390 329 <h2 class="memtitle"><span class="permalink"><a href="#a7d261dd0bc358c957a368bc058c1ce53">&#9670;&nbsp;</a></span>SC</h2>
universe@390 330
universe@390 331 <div class="memitem">
universe@390 332 <div class="memproto">
universe@390 333 <table class="memname">
universe@390 334 <tr>
universe@390 335 <td class="memname">#define SC</td>
universe@390 336 <td>(</td>
universe@390 337 <td class="paramtype">&#160;</td>
universe@390 338 <td class="paramname">s</td><td>)</td>
universe@390 339 <td>&#160;&#160;&#160;<a class="el" href="string_8h.html#ae594f6e222ea394cef6a26c0dfad000d">scstrn</a>(s, sizeof(s)-1)</td>
universe@390 340 </tr>
universe@390 341 </table>
universe@390 342 </div><div class="memdoc">
universe@390 343
universe@390 344 <p>Shortcut for the conversion of a C string to a <code><a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a></code>. </p>
universe@390 345
universe@390 346 </div>
universe@390 347 </div>
universe@390 348 <a id="ad4293350a9b39a23a6546bd0fef2aeed"></a>
universe@390 349 <h2 class="memtitle"><span class="permalink"><a href="#ad4293350a9b39a23a6546bd0fef2aeed">&#9670;&nbsp;</a></span>SCSTR</h2>
universe@390 350
universe@390 351 <div class="memitem">
universe@390 352 <div class="memproto">
universe@390 353 <table class="memname">
universe@390 354 <tr>
universe@390 355 <td class="memname">#define SCSTR</td>
universe@390 356 <td>(</td>
universe@390 357 <td class="paramtype">&#160;</td>
universe@390 358 <td class="paramname">str</td><td>)</td>
universe@390 359 <td>&#160;&#160;&#160;<a class="el" href="string_8h.html#aedeb5d7bddda54116101a8d68af8c56d">ucx_ss2c_s</a>(str)</td>
universe@390 360 </tr>
universe@390 361 </table>
universe@390 362 </div><div class="memdoc">
universe@390 363
universe@390 364 <p>Converts a UCX string to an immutable UCX string (<a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a>). </p>
universe@390 365 <dl class="params"><dt>Parameters</dt><dd>
universe@390 366 <table class="params">
universe@390 367 <tr><td class="paramname">str</td><td>some UCX string </td></tr>
universe@390 368 </table>
universe@390 369 </dd>
universe@390 370 </dl>
universe@390 371 <dl class="section return"><dt>Returns</dt><dd>the an immutable version of the provided string </dd></dl>
universe@390 372
universe@390 373 </div>
universe@390 374 </div>
universe@390 375 <a id="a23ed51e87385886bb65e8cd19c839362"></a>
universe@390 376 <h2 class="memtitle"><span class="permalink"><a href="#a23ed51e87385886bb65e8cd19c839362">&#9670;&nbsp;</a></span>SFMT</h2>
universe@390 377
universe@390 378 <div class="memitem">
universe@390 379 <div class="memproto">
universe@390 380 <table class="memname">
universe@390 381 <tr>
universe@390 382 <td class="memname">#define SFMT</td>
universe@390 383 <td>(</td>
universe@390 384 <td class="paramtype">&#160;</td>
universe@390 385 <td class="paramname">s</td><td>)</td>
universe@390 386 <td>&#160;&#160;&#160;(int) (s).length, (s).ptr</td>
universe@390 387 </tr>
universe@390 388 </table>
universe@390 389 </div><div class="memdoc">
universe@390 390
universe@390 391 <p>Expands a <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> or <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a> to printf arguments. </p>
universe@390 392
universe@390 393 </div>
universe@390 394 </div>
universe@390 395 <a id="a81b0f6df794152c2038703d4e9d0ad59"></a>
universe@390 396 <h2 class="memtitle"><span class="permalink"><a href="#a81b0f6df794152c2038703d4e9d0ad59">&#9670;&nbsp;</a></span>sstrcasecmp</h2>
universe@390 397
universe@390 398 <div class="memitem">
universe@390 399 <div class="memproto">
universe@390 400 <table class="memname">
universe@390 401 <tr>
universe@390 402 <td class="memname">#define sstrcasecmp</td>
universe@390 403 <td>(</td>
universe@390 404 <td class="paramtype">&#160;</td>
universe@390 405 <td class="paramname">s1, </td>
universe@390 406 </tr>
universe@390 407 <tr>
universe@390 408 <td class="paramkey"></td>
universe@390 409 <td></td>
universe@390 410 <td class="paramtype">&#160;</td>
universe@390 411 <td class="paramname">s2&#160;</td>
universe@390 412 </tr>
universe@390 413 <tr>
universe@390 414 <td></td>
universe@390 415 <td>)</td>
universe@390 416 <td></td><td>&#160;&#160;&#160;<a class="el" href="string_8h.html#aca8142fb823d253054e17c17cfca05e0">scstrcasecmp</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(s1), <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(s2))</td>
universe@390 417 </tr>
universe@390 418 </table>
universe@390 419 </div><div class="memdoc">
universe@390 420
universe@390 421 <p>Compares two UCX strings ignoring the case. </p>
universe@390 422 <p>At first it compares the <a class="el" href="structsstr__t.html#a5cf571708cdff92e45f08458f2b98229" title="The length of the string. ">sstr_t.length</a> attribute of the two strings. If and only if the lengths match, both strings are compared char by char ignoring the case.</p>
universe@390 423 <dl class="params"><dt>Parameters</dt><dd>
universe@390 424 <table class="params">
universe@390 425 <tr><td class="paramname">s1</td><td>the first string </td></tr>
universe@390 426 <tr><td class="paramname">s2</td><td>the second string </td></tr>
universe@390 427 </table>
universe@390 428 </dd>
universe@390 429 </dl>
universe@390 430 <dl class="section return"><dt>Returns</dt><dd>-1, if the length of s1 is less than the length of s2 or 1, if the length of s1 is greater than the length of s2 or the result of the platform specific string comparison function ignoring the case. </dd></dl>
universe@390 431
universe@390 432 </div>
universe@390 433 </div>
universe@390 434 <a id="acd3dc64e90db9b4046e14f115a815ff4"></a>
universe@390 435 <h2 class="memtitle"><span class="permalink"><a href="#acd3dc64e90db9b4046e14f115a815ff4">&#9670;&nbsp;</a></span>sstrcaseprefix</h2>
universe@390 436
universe@390 437 <div class="memitem">
universe@390 438 <div class="memproto">
universe@390 439 <table class="memname">
universe@390 440 <tr>
universe@390 441 <td class="memname">#define sstrcaseprefix</td>
universe@390 442 <td>(</td>
universe@390 443 <td class="paramtype">&#160;</td>
universe@390 444 <td class="paramname">string, </td>
universe@390 445 </tr>
universe@390 446 <tr>
universe@390 447 <td class="paramkey"></td>
universe@390 448 <td></td>
universe@390 449 <td class="paramtype">&#160;</td>
universe@390 450 <td class="paramname">prefix&#160;</td>
universe@390 451 </tr>
universe@390 452 <tr>
universe@390 453 <td></td>
universe@390 454 <td>)</td>
universe@390 455 <td></td><td>&#160;&#160;&#160;<a class="el" href="string_8h.html#a3718ef4aa1e86cdb26bda2f07fb585df">scstrcaseprefix</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string), <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(prefix))</td>
universe@390 456 </tr>
universe@390 457 </table>
universe@390 458 </div><div class="memdoc">
universe@390 459
universe@390 460 <p>Checks, if a string has a specific prefix, ignoring the case. </p>
universe@390 461 <dl class="params"><dt>Parameters</dt><dd>
universe@390 462 <table class="params">
universe@390 463 <tr><td class="paramname">string</td><td>the string to check </td></tr>
universe@390 464 <tr><td class="paramname">prefix</td><td>the prefix the string should have </td></tr>
universe@390 465 </table>
universe@390 466 </dd>
universe@390 467 </dl>
universe@390 468 <dl class="section return"><dt>Returns</dt><dd>1, if and only if the string has the specified prefix, 0 otherwise </dd></dl>
universe@390 469
universe@390 470 </div>
universe@390 471 </div>
universe@390 472 <a id="a57eabd4862d531dd685bbf2feb8468bf"></a>
universe@390 473 <h2 class="memtitle"><span class="permalink"><a href="#a57eabd4862d531dd685bbf2feb8468bf">&#9670;&nbsp;</a></span>sstrcasesuffix</h2>
universe@390 474
universe@390 475 <div class="memitem">
universe@390 476 <div class="memproto">
universe@390 477 <table class="memname">
universe@390 478 <tr>
universe@390 479 <td class="memname">#define sstrcasesuffix</td>
universe@390 480 <td>(</td>
universe@390 481 <td class="paramtype">&#160;</td>
universe@390 482 <td class="paramname">string, </td>
universe@390 483 </tr>
universe@390 484 <tr>
universe@390 485 <td class="paramkey"></td>
universe@390 486 <td></td>
universe@390 487 <td class="paramtype">&#160;</td>
universe@390 488 <td class="paramname">suffix&#160;</td>
universe@390 489 </tr>
universe@390 490 <tr>
universe@390 491 <td></td>
universe@390 492 <td>)</td>
universe@390 493 <td></td><td>&#160;&#160;&#160;<a class="el" href="string_8h.html#a6edb4b85f2b9efe79db7ffe6eccd7bc3">scstrcasesuffix</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string), <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(suffix))</td>
universe@390 494 </tr>
universe@390 495 </table>
universe@390 496 </div><div class="memdoc">
universe@390 497
universe@390 498 <p>Checks, if a string has a specific suffix, ignoring the case. </p>
universe@390 499 <dl class="params"><dt>Parameters</dt><dd>
universe@390 500 <table class="params">
universe@390 501 <tr><td class="paramname">string</td><td>the string to check </td></tr>
universe@390 502 <tr><td class="paramname">suffix</td><td>the suffix the string should have </td></tr>
universe@390 503 </table>
universe@390 504 </dd>
universe@390 505 </dl>
universe@390 506 <dl class="section return"><dt>Returns</dt><dd>1, if and only if the string has the specified suffix, 0 otherwise </dd></dl>
universe@390 507
universe@390 508 </div>
universe@390 509 </div>
universe@390 510 <a id="a6af8a4c347c7fdb5980d4c4803be2759"></a>
universe@390 511 <h2 class="memtitle"><span class="permalink"><a href="#a6af8a4c347c7fdb5980d4c4803be2759">&#9670;&nbsp;</a></span>sstrcat</h2>
universe@390 512
universe@390 513 <div class="memitem">
universe@390 514 <div class="memproto">
universe@390 515 <table class="memname">
universe@390 516 <tr>
universe@390 517 <td class="memname">#define sstrcat</td>
universe@390 518 <td>(</td>
universe@390 519 <td class="paramtype">&#160;</td>
universe@390 520 <td class="paramname">count, </td>
universe@390 521 </tr>
universe@390 522 <tr>
universe@390 523 <td class="paramkey"></td>
universe@390 524 <td></td>
universe@390 525 <td class="paramtype">&#160;</td>
universe@390 526 <td class="paramname">s1, </td>
universe@390 527 </tr>
universe@390 528 <tr>
universe@390 529 <td class="paramkey"></td>
universe@390 530 <td></td>
universe@390 531 <td class="paramtype">&#160;</td>
universe@390 532 <td class="paramname"><em>...</em>&#160;</td>
universe@390 533 </tr>
universe@390 534 <tr>
universe@390 535 <td></td>
universe@390 536 <td>)</td>
universe@390 537 <td></td><td>&#160;&#160;&#160;<a class="el" href="string_8h.html#a7376842c19e954b49215da81ef76ac0c">scstrcat</a>(count, <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(s1), __VA_ARGS__)</td>
universe@390 538 </tr>
universe@390 539 </table>
universe@390 540 </div><div class="memdoc">
universe@390 541
universe@390 542 <p>Concatenates two or more strings. </p>
universe@390 543 <p>The resulting string will be allocated by standard <code>malloc()</code>. So developers <b>MUST</b> pass the <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> to <code>free()</code>.</p>
universe@390 544 <p>The <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> of the return value will <em>always</em> be <code>NULL</code>- terminated.</p>
universe@390 545 <dl class="params"><dt>Parameters</dt><dd>
universe@390 546 <table class="params">
universe@390 547 <tr><td class="paramname">count</td><td>the total number of strings to concatenate </td></tr>
universe@390 548 <tr><td class="paramname">s1</td><td>first string </td></tr>
universe@390 549 <tr><td class="paramname">...</td><td>all remaining strings </td></tr>
universe@390 550 </table>
universe@390 551 </dd>
universe@390 552 </dl>
universe@390 553 <dl class="section return"><dt>Returns</dt><dd>the concatenated string </dd></dl>
universe@390 554
universe@390 555 </div>
universe@390 556 </div>
universe@390 557 <a id="a6068d460f9bc05962666a917d26568b3"></a>
universe@390 558 <h2 class="memtitle"><span class="permalink"><a href="#a6068d460f9bc05962666a917d26568b3">&#9670;&nbsp;</a></span>sstrcat_a</h2>
universe@390 559
universe@390 560 <div class="memitem">
universe@390 561 <div class="memproto">
universe@390 562 <table class="memname">
universe@390 563 <tr>
universe@390 564 <td class="memname">#define sstrcat_a</td>
universe@390 565 <td>(</td>
universe@390 566 <td class="paramtype">&#160;</td>
universe@390 567 <td class="paramname">alloc, </td>
universe@390 568 </tr>
universe@390 569 <tr>
universe@390 570 <td class="paramkey"></td>
universe@390 571 <td></td>
universe@390 572 <td class="paramtype">&#160;</td>
universe@390 573 <td class="paramname">count, </td>
universe@390 574 </tr>
universe@390 575 <tr>
universe@390 576 <td class="paramkey"></td>
universe@390 577 <td></td>
universe@390 578 <td class="paramtype">&#160;</td>
universe@390 579 <td class="paramname">s1, </td>
universe@390 580 </tr>
universe@390 581 <tr>
universe@390 582 <td class="paramkey"></td>
universe@390 583 <td></td>
universe@390 584 <td class="paramtype">&#160;</td>
universe@390 585 <td class="paramname"><em>...</em>&#160;</td>
universe@390 586 </tr>
universe@390 587 <tr>
universe@390 588 <td></td>
universe@390 589 <td>)</td>
universe@390 590 <td></td><td>&#160;&#160;&#160;<a class="el" href="string_8h.html#abacce4cbd6f70fcb6453904ef08b02e9">scstrcat_a</a>(alloc, count, <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(s1), __VA_ARGS__)</td>
universe@390 591 </tr>
universe@390 592 </table>
universe@390 593 </div><div class="memdoc">
universe@390 594
universe@390 595 <p>Concatenates two or more strings using a <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a>. </p>
universe@390 596 <p>The resulting string must be freed by the allocators <code>free()</code> implementation.</p>
universe@390 597 <p>The <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> of the return value will <em>always</em> be <code>NULL</code>- terminated.</p>
universe@390 598 <dl class="params"><dt>Parameters</dt><dd>
universe@390 599 <table class="params">
universe@390 600 <tr><td class="paramname">alloc</td><td>the allocator to use </td></tr>
universe@390 601 <tr><td class="paramname">count</td><td>the total number of strings to concatenate </td></tr>
universe@390 602 <tr><td class="paramname">s1</td><td>first string </td></tr>
universe@390 603 <tr><td class="paramname">...</td><td>all remaining strings </td></tr>
universe@390 604 </table>
universe@390 605 </dd>
universe@390 606 </dl>
universe@390 607 <dl class="section return"><dt>Returns</dt><dd>the concatenated string</dd></dl>
universe@390 608 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a6af8a4c347c7fdb5980d4c4803be2759" title="Concatenates two or more strings. ">sstrcat()</a> </dd></dl>
universe@390 609
universe@390 610 </div>
universe@390 611 </div>
universe@390 612 <a id="a7ae7156c8de57454ca38d306100b8160"></a>
universe@390 613 <h2 class="memtitle"><span class="permalink"><a href="#a7ae7156c8de57454ca38d306100b8160">&#9670;&nbsp;</a></span>sstrcmp</h2>
universe@390 614
universe@390 615 <div class="memitem">
universe@390 616 <div class="memproto">
universe@390 617 <table class="memname">
universe@390 618 <tr>
universe@390 619 <td class="memname">#define sstrcmp</td>
universe@390 620 <td>(</td>
universe@390 621 <td class="paramtype">&#160;</td>
universe@390 622 <td class="paramname">s1, </td>
universe@390 623 </tr>
universe@390 624 <tr>
universe@390 625 <td class="paramkey"></td>
universe@390 626 <td></td>
universe@390 627 <td class="paramtype">&#160;</td>
universe@390 628 <td class="paramname">s2&#160;</td>
universe@390 629 </tr>
universe@390 630 <tr>
universe@390 631 <td></td>
universe@390 632 <td>)</td>
universe@390 633 <td></td><td>&#160;&#160;&#160;<a class="el" href="string_8h.html#af35272a8e5408c88ed3e25a3a98f0a82">scstrcmp</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(s1), <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(s2))</td>
universe@390 634 </tr>
universe@390 635 </table>
universe@390 636 </div><div class="memdoc">
universe@390 637
universe@390 638 <p>Compares two UCX strings with standard <code>memcmp()</code>. </p>
universe@390 639 <p>At first it compares the <a class="el" href="structsstr__t.html#a5cf571708cdff92e45f08458f2b98229" title="The length of the string. ">sstr_t.length</a> attribute of the two strings. The <code>memcmp()</code> function is called, if and only if the lengths match.</p>
universe@390 640 <dl class="params"><dt>Parameters</dt><dd>
universe@390 641 <table class="params">
universe@390 642 <tr><td class="paramname">s1</td><td>the first string </td></tr>
universe@390 643 <tr><td class="paramname">s2</td><td>the second string </td></tr>
universe@390 644 </table>
universe@390 645 </dd>
universe@390 646 </dl>
universe@390 647 <dl class="section return"><dt>Returns</dt><dd>-1, if the length of s1 is less than the length of s2 or 1, if the length of s1 is greater than the length of s2 or the result of <code>memcmp()</code> otherwise (i.e. 0 if the strings match) </dd></dl>
universe@390 648
universe@390 649 </div>
universe@390 650 </div>
universe@390 651 <a id="accbfd2b459a028d7af9fb7df6f977d80"></a>
universe@390 652 <h2 class="memtitle"><span class="permalink"><a href="#accbfd2b459a028d7af9fb7df6f977d80">&#9670;&nbsp;</a></span>sstrdup</h2>
universe@390 653
universe@390 654 <div class="memitem">
universe@390 655 <div class="memproto">
universe@390 656 <table class="memname">
universe@390 657 <tr>
universe@390 658 <td class="memname">#define sstrdup</td>
universe@390 659 <td>(</td>
universe@390 660 <td class="paramtype">&#160;</td>
universe@390 661 <td class="paramname">string</td><td>)</td>
universe@390 662 <td>&#160;&#160;&#160;<a class="el" href="string_8h.html#a97dccce03af419596dbdd592ca46a164">scstrdup</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string))</td>
universe@390 663 </tr>
universe@390 664 </table>
universe@390 665 </div><div class="memdoc">
universe@390 666
universe@390 667 <p>Creates a duplicate of the specified string. </p>
universe@390 668 <p>The new <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> will contain a copy allocated by standard <code>malloc()</code>. So developers <b>MUST</b> pass the <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> to <code>free()</code>.</p>
universe@390 669 <p>The <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> of the return value will <em>always</em> be <code>NULL</code>- terminated, regardless of the argument.</p>
universe@390 670 <dl class="params"><dt>Parameters</dt><dd>
universe@390 671 <table class="params">
universe@390 672 <tr><td class="paramname">string</td><td>the string to duplicate </td></tr>
universe@390 673 </table>
universe@390 674 </dd>
universe@390 675 </dl>
universe@390 676 <dl class="section return"><dt>Returns</dt><dd>a duplicate of the string </dd></dl>
universe@390 677 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a8d098baada4ea9ad5d8b6343b5aec007" title="Creates a duplicate of the specified string using a UcxAllocator. ">sstrdup_a()</a> </dd></dl>
universe@390 678
universe@390 679 </div>
universe@390 680 </div>
universe@390 681 <a id="a8d098baada4ea9ad5d8b6343b5aec007"></a>
universe@390 682 <h2 class="memtitle"><span class="permalink"><a href="#a8d098baada4ea9ad5d8b6343b5aec007">&#9670;&nbsp;</a></span>sstrdup_a</h2>
universe@390 683
universe@390 684 <div class="memitem">
universe@390 685 <div class="memproto">
universe@390 686 <table class="memname">
universe@390 687 <tr>
universe@390 688 <td class="memname">#define sstrdup_a</td>
universe@390 689 <td>(</td>
universe@390 690 <td class="paramtype">&#160;</td>
universe@390 691 <td class="paramname">allocator, </td>
universe@390 692 </tr>
universe@390 693 <tr>
universe@390 694 <td class="paramkey"></td>
universe@390 695 <td></td>
universe@390 696 <td class="paramtype">&#160;</td>
universe@390 697 <td class="paramname">string&#160;</td>
universe@390 698 </tr>
universe@390 699 <tr>
universe@390 700 <td></td>
universe@390 701 <td>)</td>
universe@390 702 <td></td><td>&#160;&#160;&#160;<a class="el" href="string_8h.html#a8fe58921f51eb1fde038472377e63014">scstrdup_a</a>(allocator, <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string))</td>
universe@390 703 </tr>
universe@390 704 </table>
universe@390 705 </div><div class="memdoc">
universe@390 706
universe@390 707 <p>Creates a duplicate of the specified string using a <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a>. </p>
universe@390 708 <p>The new <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> will contain a copy allocated by the allocators <a class="el" href="structUcxAllocator.html#a013376172be39ed54f77c4be6898845a" title="The malloc() function for this allocator. ">UcxAllocator.malloc()</a> function. So it is implementation depended, whether the returned <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> pointer must be passed to the allocators <a class="el" href="structUcxAllocator.html#aecce1840378ed53f1002190f4f87026f" title="The free() function for this allocator. ">UcxAllocator.free()</a> function manually.</p>
universe@390 709 <p>The <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> of the return value will <em>always</em> be <code>NULL</code>- terminated, regardless of the argument.</p>
universe@390 710 <dl class="params"><dt>Parameters</dt><dd>
universe@390 711 <table class="params">
universe@390 712 <tr><td class="paramname">allocator</td><td>a valid instance of a <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a> </td></tr>
universe@390 713 <tr><td class="paramname">string</td><td>the string to duplicate </td></tr>
universe@390 714 </table>
universe@390 715 </dd>
universe@390 716 </dl>
universe@390 717 <dl class="section return"><dt>Returns</dt><dd>a duplicate of the string </dd></dl>
universe@390 718 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a97dccce03af419596dbdd592ca46a164" title="Creates a duplicate of the specified string. ">scstrdup()</a> </dd></dl>
universe@390 719
universe@390 720 </div>
universe@390 721 </div>
universe@390 722 <a id="a89343ea3e719f00ee802b557db57b769"></a>
universe@390 723 <h2 class="memtitle"><span class="permalink"><a href="#a89343ea3e719f00ee802b557db57b769">&#9670;&nbsp;</a></span>sstrlower</h2>
universe@390 724
universe@390 725 <div class="memitem">
universe@390 726 <div class="memproto">
universe@390 727 <table class="memname">
universe@390 728 <tr>
universe@390 729 <td class="memname">#define sstrlower</td>
universe@390 730 <td>(</td>
universe@390 731 <td class="paramtype">&#160;</td>
universe@390 732 <td class="paramname">string</td><td>)</td>
universe@390 733 <td>&#160;&#160;&#160;<a class="el" href="string_8h.html#abccf198bea3186ff2abb080cc88dcae6">scstrlower</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string))</td>
universe@390 734 </tr>
universe@390 735 </table>
universe@390 736 </div><div class="memdoc">
universe@390 737
universe@390 738 <p>Returns a lower case version of a string. </p>
universe@390 739 <p>This function creates a duplicate of the input string, first (see <a class="el" href="string_8h.html#accbfd2b459a028d7af9fb7df6f977d80" title="Creates a duplicate of the specified string. ">sstrdup()</a>).</p>
universe@390 740 <dl class="params"><dt>Parameters</dt><dd>
universe@390 741 <table class="params">
universe@390 742 <tr><td class="paramname">string</td><td>the input string </td></tr>
universe@390 743 </table>
universe@390 744 </dd>
universe@390 745 </dl>
universe@390 746 <dl class="section return"><dt>Returns</dt><dd>the resulting lower case string </dd></dl>
universe@390 747
universe@390 748 </div>
universe@390 749 </div>
universe@390 750 <a id="a4bb4742fe71115f493991d307cb22b23"></a>
universe@390 751 <h2 class="memtitle"><span class="permalink"><a href="#a4bb4742fe71115f493991d307cb22b23">&#9670;&nbsp;</a></span>sstrlower_a</h2>
universe@390 752
universe@390 753 <div class="memitem">
universe@390 754 <div class="memproto">
universe@390 755 <table class="memname">
universe@390 756 <tr>
universe@390 757 <td class="memname">#define sstrlower_a</td>
universe@390 758 <td>(</td>
universe@390 759 <td class="paramtype">&#160;</td>
universe@390 760 <td class="paramname">allocator, </td>
universe@390 761 </tr>
universe@390 762 <tr>
universe@390 763 <td class="paramkey"></td>
universe@390 764 <td></td>
universe@390 765 <td class="paramtype">&#160;</td>
universe@390 766 <td class="paramname">string&#160;</td>
universe@390 767 </tr>
universe@390 768 <tr>
universe@390 769 <td></td>
universe@390 770 <td>)</td>
universe@390 771 <td></td><td>&#160;&#160;&#160;<a class="el" href="string_8h.html#a3cf1e557df7ab58d03c78832c4060276">scstrlower_a</a>(allocator, <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string))</td>
universe@390 772 </tr>
universe@390 773 </table>
universe@390 774 </div><div class="memdoc">
universe@390 775
universe@390 776 <p>Returns a lower case version of a string. </p>
universe@390 777 <p>This function creates a duplicate of the input string, first (see <a class="el" href="string_8h.html#a8d098baada4ea9ad5d8b6343b5aec007" title="Creates a duplicate of the specified string using a UcxAllocator. ">sstrdup_a()</a>).</p>
universe@390 778 <dl class="params"><dt>Parameters</dt><dd>
universe@390 779 <table class="params">
universe@390 780 <tr><td class="paramname">allocator</td><td>the allocator used for duplicating the string </td></tr>
universe@390 781 <tr><td class="paramname">string</td><td>the input string </td></tr>
universe@390 782 </table>
universe@390 783 </dd>
universe@390 784 </dl>
universe@390 785 <dl class="section return"><dt>Returns</dt><dd>the resulting lower case string </dd></dl>
universe@390 786
universe@390 787 </div>
universe@390 788 </div>
universe@390 789 <a id="a33fa945acc5ac2ce962e5ef13cf1638c"></a>
universe@390 790 <h2 class="memtitle"><span class="permalink"><a href="#a33fa945acc5ac2ce962e5ef13cf1638c">&#9670;&nbsp;</a></span>sstrnlen</h2>
universe@390 791
universe@390 792 <div class="memitem">
universe@390 793 <div class="memproto">
universe@390 794 <table class="memname">
universe@390 795 <tr>
universe@390 796 <td class="memname">#define sstrnlen</td>
universe@390 797 <td>(</td>
universe@390 798 <td class="paramtype">&#160;</td>
universe@390 799 <td class="paramname">count, </td>
universe@390 800 </tr>
universe@390 801 <tr>
universe@390 802 <td class="paramkey"></td>
universe@390 803 <td></td>
universe@390 804 <td class="paramtype">&#160;</td>
universe@390 805 <td class="paramname"><em>...</em>&#160;</td>
universe@390 806 </tr>
universe@390 807 <tr>
universe@390 808 <td></td>
universe@390 809 <td>)</td>
universe@390 810 <td></td><td>&#160;&#160;&#160;<a class="el" href="string_8h.html#ac1b000030d6d197eec48c15a182055d5">scstrnlen</a>(count, __VA_ARGS__)</td>
universe@390 811 </tr>
universe@390 812 </table>
universe@390 813 </div><div class="memdoc">
universe@390 814
universe@390 815 <p>Returns the accumulated length of all specified strings. </p>
universe@390 816 <p><b>Attention:</b> if the count argument is larger than the count of the specified strings, the behavior is undefined.</p>
universe@390 817 <dl class="params"><dt>Parameters</dt><dd>
universe@390 818 <table class="params">
universe@390 819 <tr><td class="paramname">count</td><td>the total number of specified strings </td></tr>
universe@390 820 <tr><td class="paramname">...</td><td>all strings </td></tr>
universe@390 821 </table>
universe@390 822 </dd>
universe@390 823 </dl>
universe@390 824 <dl class="section return"><dt>Returns</dt><dd>the cumulated length of all strings </dd></dl>
universe@390 825
universe@390 826 </div>
universe@390 827 </div>
universe@390 828 <a id="a7d73b66256384b26927e787318fdefa2"></a>
universe@390 829 <h2 class="memtitle"><span class="permalink"><a href="#a7d73b66256384b26927e787318fdefa2">&#9670;&nbsp;</a></span>sstrprefix</h2>
universe@390 830
universe@390 831 <div class="memitem">
universe@390 832 <div class="memproto">
universe@390 833 <table class="memname">
universe@390 834 <tr>
universe@390 835 <td class="memname">#define sstrprefix</td>
universe@390 836 <td>(</td>
universe@390 837 <td class="paramtype">&#160;</td>
universe@390 838 <td class="paramname">string, </td>
universe@390 839 </tr>
universe@390 840 <tr>
universe@390 841 <td class="paramkey"></td>
universe@390 842 <td></td>
universe@390 843 <td class="paramtype">&#160;</td>
universe@390 844 <td class="paramname">prefix&#160;</td>
universe@390 845 </tr>
universe@390 846 <tr>
universe@390 847 <td></td>
universe@390 848 <td>)</td>
universe@390 849 <td></td><td>&#160;&#160;&#160;<a class="el" href="string_8h.html#a599ddc2f88dd1df68b72eefd91347393">scstrprefix</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string), <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(prefix))</td>
universe@390 850 </tr>
universe@390 851 </table>
universe@390 852 </div><div class="memdoc">
universe@390 853
universe@390 854 <p>Checks, if a string has a specific prefix. </p>
universe@390 855 <dl class="params"><dt>Parameters</dt><dd>
universe@390 856 <table class="params">
universe@390 857 <tr><td class="paramname">string</td><td>the string to check </td></tr>
universe@390 858 <tr><td class="paramname">prefix</td><td>the prefix the string should have </td></tr>
universe@390 859 </table>
universe@390 860 </dd>
universe@390 861 </dl>
universe@390 862 <dl class="section return"><dt>Returns</dt><dd>1, if and only if the string has the specified prefix, 0 otherwise </dd></dl>
universe@390 863
universe@390 864 </div>
universe@390 865 </div>
universe@390 866 <a id="aa696932213265e10f864678686f4ccde"></a>
universe@390 867 <h2 class="memtitle"><span class="permalink"><a href="#aa696932213265e10f864678686f4ccde">&#9670;&nbsp;</a></span>sstrscstr</h2>
universe@390 868
universe@390 869 <div class="memitem">
universe@390 870 <div class="memproto">
universe@390 871 <table class="memname">
universe@390 872 <tr>
universe@390 873 <td class="memname">#define sstrscstr</td>
universe@390 874 <td>(</td>
universe@390 875 <td class="paramtype">&#160;</td>
universe@390 876 <td class="paramname">string, </td>
universe@390 877 </tr>
universe@390 878 <tr>
universe@390 879 <td class="paramkey"></td>
universe@390 880 <td></td>
universe@390 881 <td class="paramtype">&#160;</td>
universe@390 882 <td class="paramname">match&#160;</td>
universe@390 883 </tr>
universe@390 884 <tr>
universe@390 885 <td></td>
universe@390 886 <td>)</td>
universe@390 887 <td></td><td>&#160;&#160;&#160;<a class="el" href="string_8h.html#a54f256c3abe811c52d58b4ff1b23f051">scstrscstr</a>(string, <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(match))</td>
universe@390 888 </tr>
universe@390 889 </table>
universe@390 890 </div><div class="memdoc">
universe@390 891
universe@390 892 <p>Returns an immutable substring starting at the location of the first occurrence of the specified immutable string. </p>
universe@390 893 <p>If the string does not contain the other string, an empty string is returned.</p>
universe@390 894 <p>If <code>match</code> is an empty string, the complete <code>string</code> is returned.</p>
universe@390 895 <dl class="params"><dt>Parameters</dt><dd>
universe@390 896 <table class="params">
universe@390 897 <tr><td class="paramname">string</td><td>the string to be scanned </td></tr>
universe@390 898 <tr><td class="paramname">match</td><td>string containing the sequence of characters to match </td></tr>
universe@390 899 </table>
universe@390 900 </dd>
universe@390 901 </dl>
universe@390 902 <dl class="section return"><dt>Returns</dt><dd>a substring starting at the first occurrence of <code>match</code>, or an empty string, if the sequence is not present in <code>string</code> </dd></dl>
universe@390 903
universe@390 904 </div>
universe@390 905 </div>
universe@390 906 <a id="aa929984004c3576bfafb95031aca8eb7"></a>
universe@390 907 <h2 class="memtitle"><span class="permalink"><a href="#aa929984004c3576bfafb95031aca8eb7">&#9670;&nbsp;</a></span>sstrsplit</h2>
universe@390 908
universe@390 909 <div class="memitem">
universe@390 910 <div class="memproto">
universe@390 911 <table class="memname">
universe@390 912 <tr>
universe@390 913 <td class="memname">#define sstrsplit</td>
universe@390 914 <td>(</td>
universe@390 915 <td class="paramtype">&#160;</td>
universe@390 916 <td class="paramname">string, </td>
universe@390 917 </tr>
universe@390 918 <tr>
universe@390 919 <td class="paramkey"></td>
universe@390 920 <td></td>
universe@390 921 <td class="paramtype">&#160;</td>
universe@390 922 <td class="paramname">delim, </td>
universe@390 923 </tr>
universe@390 924 <tr>
universe@390 925 <td class="paramkey"></td>
universe@390 926 <td></td>
universe@390 927 <td class="paramtype">&#160;</td>
universe@390 928 <td class="paramname">count&#160;</td>
universe@390 929 </tr>
universe@390 930 <tr>
universe@390 931 <td></td>
universe@390 932 <td>)</td>
universe@390 933 <td></td><td>&#160;&#160;&#160;<a class="el" href="string_8h.html#ae71cac352b00230848bde358f0fb05ea">scstrsplit</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string), <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(delim), count)</td>
universe@390 934 </tr>
universe@390 935 </table>
universe@390 936 </div><div class="memdoc">
universe@390 937
universe@390 938 <p>Splits a string into parts by using a delimiter string. </p>
universe@390 939 <p>This function will return <code>NULL</code>, if one of the following happens: </p><ul>
universe@390 940 <li>
universe@390 941 the string length is zero </li>
universe@390 942 <li>
universe@390 943 the delimeter length is zero </li>
universe@390 944 <li>
universe@390 945 the string equals the delimeter </li>
universe@390 946 <li>
universe@390 947 memory allocation fails </li>
universe@390 948 </ul>
universe@390 949 <p>The integer referenced by <code>count</code> is used as input and determines the maximum size of the resulting array, i.e. the maximum count of splits to perform + 1.</p>
universe@390 950 <p>The integer referenced by <code>count</code> is also used as output and is set to </p><ul>
universe@390 951 <li>
universe@390 952 -2, on memory allocation errors </li>
universe@390 953 <li>
universe@390 954 -1, if either the string or the delimiter is an empty string </li>
universe@390 955 <li>
universe@390 956 0, if the string equals the delimiter </li>
universe@390 957 <li>
universe@390 958 1, if the string does not contain the delimiter </li>
universe@390 959 <li>
universe@390 960 the count of array items, otherwise </li>
universe@390 961 </ul>
universe@390 962 <p>If the string starts with the delimiter, the first item of the resulting array will be an empty string.</p>
universe@390 963 <p>If the string ends with the delimiter and the maximum list size is not exceeded, the last array item will be an empty string. In case the list size would be exceeded, the last array item will be the remaining string after the last split, <em>including</em> the terminating delimiter.</p>
universe@390 964 <p><b>Attention:</b> The array pointer <b>AND</b> all <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> of the array items must be manually passed to <code>free()</code>. Use <a class="el" href="string_8h.html#ac9f69fa3a17e26a3a5f9d985b5844601" title="Performing sstrsplit() using a UcxAllocator. ">sstrsplit_a()</a> with an allocator to managed memory, to avoid this.</p>
universe@390 965 <dl class="params"><dt>Parameters</dt><dd>
universe@390 966 <table class="params">
universe@390 967 <tr><td class="paramname">string</td><td>the string to split </td></tr>
universe@390 968 <tr><td class="paramname">delim</td><td>the delimiter string </td></tr>
universe@390 969 <tr><td class="paramname">count</td><td>IN: the maximum size of the resulting array (0 = no limit), OUT: the actual size of the array </td></tr>
universe@390 970 </table>
universe@390 971 </dd>
universe@390 972 </dl>
universe@390 973 <dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> array containing the split strings or <code>NULL</code> on error</dd></dl>
universe@390 974 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#ac9f69fa3a17e26a3a5f9d985b5844601" title="Performing sstrsplit() using a UcxAllocator. ">sstrsplit_a()</a> </dd></dl>
universe@390 975
universe@390 976 </div>
universe@390 977 </div>
universe@390 978 <a id="ac9f69fa3a17e26a3a5f9d985b5844601"></a>
universe@390 979 <h2 class="memtitle"><span class="permalink"><a href="#ac9f69fa3a17e26a3a5f9d985b5844601">&#9670;&nbsp;</a></span>sstrsplit_a</h2>
universe@390 980
universe@390 981 <div class="memitem">
universe@390 982 <div class="memproto">
universe@390 983 <table class="memname">
universe@390 984 <tr>
universe@390 985 <td class="memname">#define sstrsplit_a</td>
universe@390 986 <td>(</td>
universe@390 987 <td class="paramtype">&#160;</td>
universe@390 988 <td class="paramname">allocator, </td>
universe@390 989 </tr>
universe@390 990 <tr>
universe@390 991 <td class="paramkey"></td>
universe@390 992 <td></td>
universe@390 993 <td class="paramtype">&#160;</td>
universe@390 994 <td class="paramname">string, </td>
universe@390 995 </tr>
universe@390 996 <tr>
universe@390 997 <td class="paramkey"></td>
universe@390 998 <td></td>
universe@390 999 <td class="paramtype">&#160;</td>
universe@390 1000 <td class="paramname">delim, </td>
universe@390 1001 </tr>
universe@390 1002 <tr>
universe@390 1003 <td class="paramkey"></td>
universe@390 1004 <td></td>
universe@390 1005 <td class="paramtype">&#160;</td>
universe@390 1006 <td class="paramname">count&#160;</td>
universe@390 1007 </tr>
universe@390 1008 <tr>
universe@390 1009 <td></td>
universe@390 1010 <td>)</td>
universe@390 1011 <td></td><td>&#160;&#160;&#160;<a class="el" href="string_8h.html#a52906455ae530c9cdc6812c8e6d9bdef">scstrsplit_a</a>(allocator, <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string), <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(delim), count)</td>
universe@390 1012 </tr>
universe@390 1013 </table>
universe@390 1014 </div><div class="memdoc">
universe@390 1015
universe@390 1016 <p>Performing <a class="el" href="string_8h.html#aa929984004c3576bfafb95031aca8eb7" title="Splits a string into parts by using a delimiter string. ">sstrsplit()</a> using a <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a>. </p>
universe@390 1017 <p><em>Read the description of <a class="el" href="string_8h.html#aa929984004c3576bfafb95031aca8eb7" title="Splits a string into parts by using a delimiter string. ">sstrsplit()</a> for details.</em></p>
universe@390 1018 <p>The memory for the <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> pointers of the array items and the memory for the <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> array itself are allocated by using the <a class="el" href="structUcxAllocator.html#a013376172be39ed54f77c4be6898845a" title="The malloc() function for this allocator. ">UcxAllocator.malloc()</a> function.</p>
universe@390 1019 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1020 <table class="params">
universe@390 1021 <tr><td class="paramname">allocator</td><td>the <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a> used for allocating memory </td></tr>
universe@390 1022 <tr><td class="paramname">string</td><td>the string to split </td></tr>
universe@390 1023 <tr><td class="paramname">delim</td><td>the delimiter string </td></tr>
universe@390 1024 <tr><td class="paramname">count</td><td>IN: the maximum size of the resulting array (0 = no limit), OUT: the actual size of the array </td></tr>
universe@390 1025 </table>
universe@390 1026 </dd>
universe@390 1027 </dl>
universe@390 1028 <dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> array containing the split strings or <code>NULL</code> on error</dd></dl>
universe@390 1029 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#aa929984004c3576bfafb95031aca8eb7" title="Splits a string into parts by using a delimiter string. ">sstrsplit()</a> </dd></dl>
universe@390 1030
universe@390 1031 </div>
universe@390 1032 </div>
universe@390 1033 <a id="a9d03be026afa9447c52bb34b9e3b895a"></a>
universe@390 1034 <h2 class="memtitle"><span class="permalink"><a href="#a9d03be026afa9447c52bb34b9e3b895a">&#9670;&nbsp;</a></span>sstrstr</h2>
universe@390 1035
universe@390 1036 <div class="memitem">
universe@390 1037 <div class="memproto">
universe@390 1038 <table class="memname">
universe@390 1039 <tr>
universe@390 1040 <td class="memname">#define sstrstr</td>
universe@390 1041 <td>(</td>
universe@390 1042 <td class="paramtype">&#160;</td>
universe@390 1043 <td class="paramname">string, </td>
universe@390 1044 </tr>
universe@390 1045 <tr>
universe@390 1046 <td class="paramkey"></td>
universe@390 1047 <td></td>
universe@390 1048 <td class="paramtype">&#160;</td>
universe@390 1049 <td class="paramname">match&#160;</td>
universe@390 1050 </tr>
universe@390 1051 <tr>
universe@390 1052 <td></td>
universe@390 1053 <td>)</td>
universe@390 1054 <td></td><td>&#160;&#160;&#160;<a class="el" href="string_8h.html#aa4362cb36c6629f9d8484739fd827748">scstrsstr</a>(string, <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(match))</td>
universe@390 1055 </tr>
universe@390 1056 </table>
universe@390 1057 </div><div class="memdoc">
universe@390 1058
universe@390 1059 <p>Returns a substring starting at the location of the first occurrence of the specified string. </p>
universe@390 1060 <p>If the string does not contain the other string, an empty string is returned.</p>
universe@390 1061 <p>If <code>match</code> is an empty string, the complete <code>string</code> is returned.</p>
universe@390 1062 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1063 <table class="params">
universe@390 1064 <tr><td class="paramname">string</td><td>the string to be scanned </td></tr>
universe@390 1065 <tr><td class="paramname">match</td><td>string containing the sequence of characters to match </td></tr>
universe@390 1066 </table>
universe@390 1067 </dd>
universe@390 1068 </dl>
universe@390 1069 <dl class="section return"><dt>Returns</dt><dd>a substring starting at the first occurrence of <code>match</code>, or an empty string, if the sequence is not present in <code>string</code> </dd></dl>
universe@390 1070
universe@390 1071 </div>
universe@390 1072 </div>
universe@390 1073 <a id="ac6a5246f26be2e8a5f34d8995b7ec14e"></a>
universe@390 1074 <h2 class="memtitle"><span class="permalink"><a href="#ac6a5246f26be2e8a5f34d8995b7ec14e">&#9670;&nbsp;</a></span>sstrsuffix</h2>
universe@390 1075
universe@390 1076 <div class="memitem">
universe@390 1077 <div class="memproto">
universe@390 1078 <table class="memname">
universe@390 1079 <tr>
universe@390 1080 <td class="memname">#define sstrsuffix</td>
universe@390 1081 <td>(</td>
universe@390 1082 <td class="paramtype">&#160;</td>
universe@390 1083 <td class="paramname">string, </td>
universe@390 1084 </tr>
universe@390 1085 <tr>
universe@390 1086 <td class="paramkey"></td>
universe@390 1087 <td></td>
universe@390 1088 <td class="paramtype">&#160;</td>
universe@390 1089 <td class="paramname">suffix&#160;</td>
universe@390 1090 </tr>
universe@390 1091 <tr>
universe@390 1092 <td></td>
universe@390 1093 <td>)</td>
universe@390 1094 <td></td><td>&#160;&#160;&#160;<a class="el" href="string_8h.html#a1f0ae316a2afe85d5b4655e6ece6721a">scstrsuffix</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string), <a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(suffix))</td>
universe@390 1095 </tr>
universe@390 1096 </table>
universe@390 1097 </div><div class="memdoc">
universe@390 1098
universe@390 1099 <p>Checks, if a string has a specific suffix. </p>
universe@390 1100 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1101 <table class="params">
universe@390 1102 <tr><td class="paramname">string</td><td>the string to check </td></tr>
universe@390 1103 <tr><td class="paramname">suffix</td><td>the suffix the string should have </td></tr>
universe@390 1104 </table>
universe@390 1105 </dd>
universe@390 1106 </dl>
universe@390 1107 <dl class="section return"><dt>Returns</dt><dd>1, if and only if the string has the specified suffix, 0 otherwise </dd></dl>
universe@390 1108
universe@390 1109 </div>
universe@390 1110 </div>
universe@390 1111 <a id="a084fe5a3a90d6fb6b15ecda03bb30824"></a>
universe@390 1112 <h2 class="memtitle"><span class="permalink"><a href="#a084fe5a3a90d6fb6b15ecda03bb30824">&#9670;&nbsp;</a></span>sstrupper</h2>
universe@390 1113
universe@390 1114 <div class="memitem">
universe@390 1115 <div class="memproto">
universe@390 1116 <table class="memname">
universe@390 1117 <tr>
universe@390 1118 <td class="memname">#define sstrupper</td>
universe@390 1119 <td>(</td>
universe@390 1120 <td class="paramtype">&#160;</td>
universe@390 1121 <td class="paramname">string</td><td>)</td>
universe@390 1122 <td>&#160;&#160;&#160;<a class="el" href="string_8h.html#af3dd09ec9d11162fe0075f4e60f41240">scstrupper</a>(<a class="el" href="string_8h.html#ad4293350a9b39a23a6546bd0fef2aeed">SCSTR</a>(string))</td>
universe@390 1123 </tr>
universe@390 1124 </table>
universe@390 1125 </div><div class="memdoc">
universe@390 1126
universe@390 1127 <p>Returns a upper case version of a string. </p>
universe@390 1128 <p>This function creates a duplicate of the input string, first (see <a class="el" href="string_8h.html#accbfd2b459a028d7af9fb7df6f977d80" title="Creates a duplicate of the specified string. ">sstrdup()</a>).</p>
universe@390 1129 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1130 <table class="params">
universe@390 1131 <tr><td class="paramname">string</td><td>the input string </td></tr>
universe@390 1132 </table>
universe@390 1133 </dd>
universe@390 1134 </dl>
universe@390 1135 <dl class="section return"><dt>Returns</dt><dd>the resulting upper case string </dd></dl>
universe@390 1136
universe@390 1137 </div>
universe@390 1138 </div>
universe@390 1139 <a id="a5f0dd83c0176b812fb428004b2877a34"></a>
universe@390 1140 <h2 class="memtitle"><span class="permalink"><a href="#a5f0dd83c0176b812fb428004b2877a34">&#9670;&nbsp;</a></span>sstrupper_a</h2>
universe@390 1141
universe@390 1142 <div class="memitem">
universe@390 1143 <div class="memproto">
universe@390 1144 <table class="memname">
universe@390 1145 <tr>
universe@390 1146 <td class="memname">#define sstrupper_a</td>
universe@390 1147 <td>(</td>
universe@390 1148 <td class="paramtype">&#160;</td>
universe@390 1149 <td class="paramname">allocator, </td>
universe@390 1150 </tr>
universe@390 1151 <tr>
universe@390 1152 <td class="paramkey"></td>
universe@390 1153 <td></td>
universe@390 1154 <td class="paramtype">&#160;</td>
universe@390 1155 <td class="paramname">string&#160;</td>
universe@390 1156 </tr>
universe@390 1157 <tr>
universe@390 1158 <td></td>
universe@390 1159 <td>)</td>
universe@390 1160 <td></td><td>&#160;&#160;&#160;<a class="el" href="string_8h.html#aea94613eb74668cc05d365803d32bfad">scstrupper_a</a>(allocator, string)</td>
universe@390 1161 </tr>
universe@390 1162 </table>
universe@390 1163 </div><div class="memdoc">
universe@390 1164
universe@390 1165 <p>Returns a upper case version of a string. </p>
universe@390 1166 <p>This function creates a duplicate of the input string, first (see <a class="el" href="string_8h.html#a8d098baada4ea9ad5d8b6343b5aec007" title="Creates a duplicate of the specified string using a UcxAllocator. ">sstrdup_a()</a>).</p>
universe@390 1167 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1168 <table class="params">
universe@390 1169 <tr><td class="paramname">allocator</td><td>the allocator used for duplicating the string </td></tr>
universe@390 1170 <tr><td class="paramname">string</td><td>the input string </td></tr>
universe@390 1171 </table>
universe@390 1172 </dd>
universe@390 1173 </dl>
universe@390 1174 <dl class="section return"><dt>Returns</dt><dd>the resulting upper case string </dd></dl>
universe@390 1175
universe@390 1176 </div>
universe@390 1177 </div>
universe@390 1178 <h2 class="groupheader">Function Documentation</h2>
universe@390 1179 <a id="a2b1d6f1eca1c1549f37107b9c026c5a6"></a>
universe@390 1180 <h2 class="memtitle"><span class="permalink"><a href="#a2b1d6f1eca1c1549f37107b9c026c5a6">&#9670;&nbsp;</a></span>scstr()</h2>
universe@390 1181
universe@390 1182 <div class="memitem">
universe@390 1183 <div class="memproto">
universe@390 1184 <table class="memname">
universe@390 1185 <tr>
universe@390 1186 <td class="memname"><a class="el" href="structscstr__t.html">scstr_t</a> scstr </td>
universe@390 1187 <td>(</td>
universe@390 1188 <td class="paramtype">const char *&#160;</td>
universe@390 1189 <td class="paramname"><em>cstring</em></td><td>)</td>
universe@390 1190 <td></td>
universe@390 1191 </tr>
universe@390 1192 </table>
universe@390 1193 </div><div class="memdoc">
universe@390 1194
universe@390 1195 <p>Creates a new <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a> based on a constant C string. </p>
universe@390 1196 <p>The length is implicitly inferred by using a call to <code>strlen()</code>.</p>
universe@390 1197 <p><b>Note:</b> the <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a> will share the specified pointer to the C string. If you do want a copy, use <a class="el" href="string_8h.html#a97dccce03af419596dbdd592ca46a164" title="Creates a duplicate of the specified string. ">scstrdup()</a> on the return value of this function.</p>
universe@390 1198 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1199 <table class="params">
universe@390 1200 <tr><td class="paramname">cstring</td><td>the C string to wrap </td></tr>
universe@390 1201 </table>
universe@390 1202 </dd>
universe@390 1203 </dl>
universe@390 1204 <dl class="section return"><dt>Returns</dt><dd>a new <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a> containing the C string</dd></dl>
universe@390 1205 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#ae594f6e222ea394cef6a26c0dfad000d" title="Creates a new scstr_t of the specified length based on a constant C string. ">scstrn()</a> </dd></dl>
universe@390 1206
universe@390 1207 </div>
universe@390 1208 </div>
universe@390 1209 <a id="aca8142fb823d253054e17c17cfca05e0"></a>
universe@390 1210 <h2 class="memtitle"><span class="permalink"><a href="#aca8142fb823d253054e17c17cfca05e0">&#9670;&nbsp;</a></span>scstrcasecmp()</h2>
universe@390 1211
universe@390 1212 <div class="memitem">
universe@390 1213 <div class="memproto">
universe@390 1214 <table class="memname">
universe@390 1215 <tr>
universe@390 1216 <td class="memname">int scstrcasecmp </td>
universe@390 1217 <td>(</td>
universe@390 1218 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1219 <td class="paramname"><em>s1</em>, </td>
universe@390 1220 </tr>
universe@390 1221 <tr>
universe@390 1222 <td class="paramkey"></td>
universe@390 1223 <td></td>
universe@390 1224 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1225 <td class="paramname"><em>s2</em>&#160;</td>
universe@390 1226 </tr>
universe@390 1227 <tr>
universe@390 1228 <td></td>
universe@390 1229 <td>)</td>
universe@390 1230 <td></td><td></td>
universe@390 1231 </tr>
universe@390 1232 </table>
universe@390 1233 </div><div class="memdoc">
universe@390 1234
universe@390 1235 <p>Compares two UCX strings ignoring the case. </p>
universe@390 1236 <p>At first it compares the <a class="el" href="structscstr__t.html#aaa0229f64f1057b6f65adededaa5a172" title="The length of the string. ">scstr_t.length</a> attribute of the two strings. If and only if the lengths match, both strings are compared char by char ignoring the case.</p>
universe@390 1237 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1238 <table class="params">
universe@390 1239 <tr><td class="paramname">s1</td><td>the first string </td></tr>
universe@390 1240 <tr><td class="paramname">s2</td><td>the second string </td></tr>
universe@390 1241 </table>
universe@390 1242 </dd>
universe@390 1243 </dl>
universe@390 1244 <dl class="section return"><dt>Returns</dt><dd>-1, if the length of s1 is less than the length of s2 or 1, if the length of s1 is greater than the length of s2 or the result of the platform specific string comparison function ignoring the case. </dd></dl>
universe@390 1245
universe@390 1246 </div>
universe@390 1247 </div>
universe@390 1248 <a id="a3718ef4aa1e86cdb26bda2f07fb585df"></a>
universe@390 1249 <h2 class="memtitle"><span class="permalink"><a href="#a3718ef4aa1e86cdb26bda2f07fb585df">&#9670;&nbsp;</a></span>scstrcaseprefix()</h2>
universe@390 1250
universe@390 1251 <div class="memitem">
universe@390 1252 <div class="memproto">
universe@390 1253 <table class="memname">
universe@390 1254 <tr>
universe@390 1255 <td class="memname">int scstrcaseprefix </td>
universe@390 1256 <td>(</td>
universe@390 1257 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1258 <td class="paramname"><em>string</em>, </td>
universe@390 1259 </tr>
universe@390 1260 <tr>
universe@390 1261 <td class="paramkey"></td>
universe@390 1262 <td></td>
universe@390 1263 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1264 <td class="paramname"><em>prefix</em>&#160;</td>
universe@390 1265 </tr>
universe@390 1266 <tr>
universe@390 1267 <td></td>
universe@390 1268 <td>)</td>
universe@390 1269 <td></td><td></td>
universe@390 1270 </tr>
universe@390 1271 </table>
universe@390 1272 </div><div class="memdoc">
universe@390 1273
universe@390 1274 <p>Checks, if a string has a specific prefix, ignoring the case. </p>
universe@390 1275 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1276 <table class="params">
universe@390 1277 <tr><td class="paramname">string</td><td>the string to check </td></tr>
universe@390 1278 <tr><td class="paramname">prefix</td><td>the prefix the string should have </td></tr>
universe@390 1279 </table>
universe@390 1280 </dd>
universe@390 1281 </dl>
universe@390 1282 <dl class="section return"><dt>Returns</dt><dd>1, if and only if the string has the specified prefix, 0 otherwise </dd></dl>
universe@390 1283
universe@390 1284 </div>
universe@390 1285 </div>
universe@390 1286 <a id="a6edb4b85f2b9efe79db7ffe6eccd7bc3"></a>
universe@390 1287 <h2 class="memtitle"><span class="permalink"><a href="#a6edb4b85f2b9efe79db7ffe6eccd7bc3">&#9670;&nbsp;</a></span>scstrcasesuffix()</h2>
universe@390 1288
universe@390 1289 <div class="memitem">
universe@390 1290 <div class="memproto">
universe@390 1291 <table class="memname">
universe@390 1292 <tr>
universe@390 1293 <td class="memname">int scstrcasesuffix </td>
universe@390 1294 <td>(</td>
universe@390 1295 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1296 <td class="paramname"><em>string</em>, </td>
universe@390 1297 </tr>
universe@390 1298 <tr>
universe@390 1299 <td class="paramkey"></td>
universe@390 1300 <td></td>
universe@390 1301 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1302 <td class="paramname"><em>suffix</em>&#160;</td>
universe@390 1303 </tr>
universe@390 1304 <tr>
universe@390 1305 <td></td>
universe@390 1306 <td>)</td>
universe@390 1307 <td></td><td></td>
universe@390 1308 </tr>
universe@390 1309 </table>
universe@390 1310 </div><div class="memdoc">
universe@390 1311
universe@390 1312 <p>Checks, if a string has a specific suffix, ignoring the case. </p>
universe@390 1313 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1314 <table class="params">
universe@390 1315 <tr><td class="paramname">string</td><td>the string to check </td></tr>
universe@390 1316 <tr><td class="paramname">suffix</td><td>the suffix the string should have </td></tr>
universe@390 1317 </table>
universe@390 1318 </dd>
universe@390 1319 </dl>
universe@390 1320 <dl class="section return"><dt>Returns</dt><dd>1, if and only if the string has the specified suffix, 0 otherwise </dd></dl>
universe@390 1321
universe@390 1322 </div>
universe@390 1323 </div>
universe@390 1324 <a id="a7376842c19e954b49215da81ef76ac0c"></a>
universe@390 1325 <h2 class="memtitle"><span class="permalink"><a href="#a7376842c19e954b49215da81ef76ac0c">&#9670;&nbsp;</a></span>scstrcat()</h2>
universe@390 1326
universe@390 1327 <div class="memitem">
universe@390 1328 <div class="memproto">
universe@390 1329 <table class="memname">
universe@390 1330 <tr>
universe@390 1331 <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> scstrcat </td>
universe@390 1332 <td>(</td>
universe@390 1333 <td class="paramtype">size_t&#160;</td>
universe@390 1334 <td class="paramname"><em>count</em>, </td>
universe@390 1335 </tr>
universe@390 1336 <tr>
universe@390 1337 <td class="paramkey"></td>
universe@390 1338 <td></td>
universe@390 1339 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1340 <td class="paramname"><em>s1</em>, </td>
universe@390 1341 </tr>
universe@390 1342 <tr>
universe@390 1343 <td class="paramkey"></td>
universe@390 1344 <td></td>
universe@390 1345 <td class="paramtype">&#160;</td>
universe@390 1346 <td class="paramname"><em>...</em>&#160;</td>
universe@390 1347 </tr>
universe@390 1348 <tr>
universe@390 1349 <td></td>
universe@390 1350 <td>)</td>
universe@390 1351 <td></td><td></td>
universe@390 1352 </tr>
universe@390 1353 </table>
universe@390 1354 </div><div class="memdoc">
universe@390 1355
universe@390 1356 <p>Concatenates two or more strings. </p>
universe@390 1357 <p>The resulting string will be allocated by standard <code>malloc()</code>. So developers <b>MUST</b> pass the <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> to <code>free()</code>.</p>
universe@390 1358 <p>The <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> of the return value will <em>always</em> be <code>NULL</code>- terminated.</p>
universe@390 1359 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1360 <table class="params">
universe@390 1361 <tr><td class="paramname">count</td><td>the total number of strings to concatenate </td></tr>
universe@390 1362 <tr><td class="paramname">s1</td><td>first string </td></tr>
universe@390 1363 <tr><td class="paramname">...</td><td>all remaining strings </td></tr>
universe@390 1364 </table>
universe@390 1365 </dd>
universe@390 1366 </dl>
universe@390 1367 <dl class="section return"><dt>Returns</dt><dd>the concatenated string </dd></dl>
universe@390 1368
universe@390 1369 </div>
universe@390 1370 </div>
universe@390 1371 <a id="abacce4cbd6f70fcb6453904ef08b02e9"></a>
universe@390 1372 <h2 class="memtitle"><span class="permalink"><a href="#abacce4cbd6f70fcb6453904ef08b02e9">&#9670;&nbsp;</a></span>scstrcat_a()</h2>
universe@390 1373
universe@390 1374 <div class="memitem">
universe@390 1375 <div class="memproto">
universe@390 1376 <table class="memname">
universe@390 1377 <tr>
universe@390 1378 <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> scstrcat_a </td>
universe@390 1379 <td>(</td>
universe@390 1380 <td class="paramtype"><a class="el" href="structUcxAllocator.html">UcxAllocator</a> *&#160;</td>
universe@390 1381 <td class="paramname"><em>alloc</em>, </td>
universe@390 1382 </tr>
universe@390 1383 <tr>
universe@390 1384 <td class="paramkey"></td>
universe@390 1385 <td></td>
universe@390 1386 <td class="paramtype">size_t&#160;</td>
universe@390 1387 <td class="paramname"><em>count</em>, </td>
universe@390 1388 </tr>
universe@390 1389 <tr>
universe@390 1390 <td class="paramkey"></td>
universe@390 1391 <td></td>
universe@390 1392 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1393 <td class="paramname"><em>s1</em>, </td>
universe@390 1394 </tr>
universe@390 1395 <tr>
universe@390 1396 <td class="paramkey"></td>
universe@390 1397 <td></td>
universe@390 1398 <td class="paramtype">&#160;</td>
universe@390 1399 <td class="paramname"><em>...</em>&#160;</td>
universe@390 1400 </tr>
universe@390 1401 <tr>
universe@390 1402 <td></td>
universe@390 1403 <td>)</td>
universe@390 1404 <td></td><td></td>
universe@390 1405 </tr>
universe@390 1406 </table>
universe@390 1407 </div><div class="memdoc">
universe@390 1408
universe@390 1409 <p>Concatenates two or more strings using a <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a>. </p>
universe@390 1410 <p>The resulting string must be freed by the allocators <code>free()</code> implementation.</p>
universe@390 1411 <p>The <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> of the return value will <em>always</em> be <code>NULL</code>- terminated.</p>
universe@390 1412 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1413 <table class="params">
universe@390 1414 <tr><td class="paramname">alloc</td><td>the allocator to use </td></tr>
universe@390 1415 <tr><td class="paramname">count</td><td>the total number of strings to concatenate </td></tr>
universe@390 1416 <tr><td class="paramname">s1</td><td>first string </td></tr>
universe@390 1417 <tr><td class="paramname">...</td><td>all remaining strings </td></tr>
universe@390 1418 </table>
universe@390 1419 </dd>
universe@390 1420 </dl>
universe@390 1421 <dl class="section return"><dt>Returns</dt><dd>the concatenated string</dd></dl>
universe@390 1422 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a7376842c19e954b49215da81ef76ac0c" title="Concatenates two or more strings. ">scstrcat()</a> </dd></dl>
universe@390 1423
universe@390 1424 </div>
universe@390 1425 </div>
universe@390 1426 <a id="a5836d6a7a744791c35e5c17bdc394a87"></a>
universe@390 1427 <h2 class="memtitle"><span class="permalink"><a href="#a5836d6a7a744791c35e5c17bdc394a87">&#9670;&nbsp;</a></span>scstrchr()</h2>
universe@390 1428
universe@390 1429 <div class="memitem">
universe@390 1430 <div class="memproto">
universe@390 1431 <table class="memname">
universe@390 1432 <tr>
universe@390 1433 <td class="memname"><a class="el" href="structscstr__t.html">scstr_t</a> scstrchr </td>
universe@390 1434 <td>(</td>
universe@390 1435 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1436 <td class="paramname"><em>string</em>, </td>
universe@390 1437 </tr>
universe@390 1438 <tr>
universe@390 1439 <td class="paramkey"></td>
universe@390 1440 <td></td>
universe@390 1441 <td class="paramtype">int&#160;</td>
universe@390 1442 <td class="paramname"><em>chr</em>&#160;</td>
universe@390 1443 </tr>
universe@390 1444 <tr>
universe@390 1445 <td></td>
universe@390 1446 <td>)</td>
universe@390 1447 <td></td><td></td>
universe@390 1448 </tr>
universe@390 1449 </table>
universe@390 1450 </div><div class="memdoc">
universe@390 1451
universe@390 1452 <p>Returns an immutable substring starting at the location of the first occurrence of the specified character. </p>
universe@390 1453 <p>If the string does not contain the character, an empty string is returned.</p>
universe@390 1454 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1455 <table class="params">
universe@390 1456 <tr><td class="paramname">string</td><td>the string where to locate the character </td></tr>
universe@390 1457 <tr><td class="paramname">chr</td><td>the character to locate </td></tr>
universe@390 1458 </table>
universe@390 1459 </dd>
universe@390 1460 </dl>
universe@390 1461 <dl class="section return"><dt>Returns</dt><dd>a substring starting at the first location of <code>chr</code></dd></dl>
universe@390 1462 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a9a6c8d8db0dda0037c3c852cce1a5060" title="Returns a substring of an immutable string starting at the specified location. ">scstrsubs()</a> </dd></dl>
universe@390 1463
universe@390 1464 </div>
universe@390 1465 </div>
universe@390 1466 <a id="af35272a8e5408c88ed3e25a3a98f0a82"></a>
universe@390 1467 <h2 class="memtitle"><span class="permalink"><a href="#af35272a8e5408c88ed3e25a3a98f0a82">&#9670;&nbsp;</a></span>scstrcmp()</h2>
universe@390 1468
universe@390 1469 <div class="memitem">
universe@390 1470 <div class="memproto">
universe@390 1471 <table class="memname">
universe@390 1472 <tr>
universe@390 1473 <td class="memname">int scstrcmp </td>
universe@390 1474 <td>(</td>
universe@390 1475 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1476 <td class="paramname"><em>s1</em>, </td>
universe@390 1477 </tr>
universe@390 1478 <tr>
universe@390 1479 <td class="paramkey"></td>
universe@390 1480 <td></td>
universe@390 1481 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1482 <td class="paramname"><em>s2</em>&#160;</td>
universe@390 1483 </tr>
universe@390 1484 <tr>
universe@390 1485 <td></td>
universe@390 1486 <td>)</td>
universe@390 1487 <td></td><td></td>
universe@390 1488 </tr>
universe@390 1489 </table>
universe@390 1490 </div><div class="memdoc">
universe@390 1491
universe@390 1492 <p>Compares two UCX strings with standard <code>memcmp()</code>. </p>
universe@390 1493 <p>At first it compares the <a class="el" href="structscstr__t.html#aaa0229f64f1057b6f65adededaa5a172" title="The length of the string. ">scstr_t.length</a> attribute of the two strings. The <code>memcmp()</code> function is called, if and only if the lengths match.</p>
universe@390 1494 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1495 <table class="params">
universe@390 1496 <tr><td class="paramname">s1</td><td>the first string </td></tr>
universe@390 1497 <tr><td class="paramname">s2</td><td>the second string </td></tr>
universe@390 1498 </table>
universe@390 1499 </dd>
universe@390 1500 </dl>
universe@390 1501 <dl class="section return"><dt>Returns</dt><dd>-1, if the length of s1 is less than the length of s2 or 1, if the length of s1 is greater than the length of s2 or the result of <code>memcmp()</code> otherwise (i.e. 0 if the strings match) </dd></dl>
universe@390 1502
universe@390 1503 </div>
universe@390 1504 </div>
universe@390 1505 <a id="a97dccce03af419596dbdd592ca46a164"></a>
universe@390 1506 <h2 class="memtitle"><span class="permalink"><a href="#a97dccce03af419596dbdd592ca46a164">&#9670;&nbsp;</a></span>scstrdup()</h2>
universe@390 1507
universe@390 1508 <div class="memitem">
universe@390 1509 <div class="memproto">
universe@390 1510 <table class="memname">
universe@390 1511 <tr>
universe@390 1512 <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> scstrdup </td>
universe@390 1513 <td>(</td>
universe@390 1514 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1515 <td class="paramname"><em>string</em></td><td>)</td>
universe@390 1516 <td></td>
universe@390 1517 </tr>
universe@390 1518 </table>
universe@390 1519 </div><div class="memdoc">
universe@390 1520
universe@390 1521 <p>Creates a duplicate of the specified string. </p>
universe@390 1522 <p>The new <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> will contain a copy allocated by standard <code>malloc()</code>. So developers <b>MUST</b> pass the <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> to <code>free()</code>.</p>
universe@390 1523 <p>The <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> of the return value will <em>always</em> be <code>NULL</code>- terminated and mutable, regardless of the argument.</p>
universe@390 1524 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1525 <table class="params">
universe@390 1526 <tr><td class="paramname">string</td><td>the string to duplicate </td></tr>
universe@390 1527 </table>
universe@390 1528 </dd>
universe@390 1529 </dl>
universe@390 1530 <dl class="section return"><dt>Returns</dt><dd>a duplicate of the string </dd></dl>
universe@390 1531 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a8fe58921f51eb1fde038472377e63014" title="Creates a duplicate of the specified string using a UcxAllocator. ">scstrdup_a()</a> </dd></dl>
universe@390 1532
universe@390 1533 </div>
universe@390 1534 </div>
universe@390 1535 <a id="a8fe58921f51eb1fde038472377e63014"></a>
universe@390 1536 <h2 class="memtitle"><span class="permalink"><a href="#a8fe58921f51eb1fde038472377e63014">&#9670;&nbsp;</a></span>scstrdup_a()</h2>
universe@390 1537
universe@390 1538 <div class="memitem">
universe@390 1539 <div class="memproto">
universe@390 1540 <table class="memname">
universe@390 1541 <tr>
universe@390 1542 <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> scstrdup_a </td>
universe@390 1543 <td>(</td>
universe@390 1544 <td class="paramtype"><a class="el" href="structUcxAllocator.html">UcxAllocator</a> *&#160;</td>
universe@390 1545 <td class="paramname"><em>allocator</em>, </td>
universe@390 1546 </tr>
universe@390 1547 <tr>
universe@390 1548 <td class="paramkey"></td>
universe@390 1549 <td></td>
universe@390 1550 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1551 <td class="paramname"><em>string</em>&#160;</td>
universe@390 1552 </tr>
universe@390 1553 <tr>
universe@390 1554 <td></td>
universe@390 1555 <td>)</td>
universe@390 1556 <td></td><td></td>
universe@390 1557 </tr>
universe@390 1558 </table>
universe@390 1559 </div><div class="memdoc">
universe@390 1560
universe@390 1561 <p>Creates a duplicate of the specified string using a <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a>. </p>
universe@390 1562 <p>The new <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> will contain a copy allocated by the allocators <a class="el" href="structUcxAllocator.html#a013376172be39ed54f77c4be6898845a" title="The malloc() function for this allocator. ">UcxAllocator.malloc()</a> function. So it is implementation depended, whether the returned <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> pointer must be passed to the allocators <a class="el" href="structUcxAllocator.html#aecce1840378ed53f1002190f4f87026f" title="The free() function for this allocator. ">UcxAllocator.free()</a> function manually.</p>
universe@390 1563 <p>The <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> of the return value will <em>always</em> be <code>NULL</code>- terminated and mutable, regardless of the argument.</p>
universe@390 1564 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1565 <table class="params">
universe@390 1566 <tr><td class="paramname">allocator</td><td>a valid instance of a <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a> </td></tr>
universe@390 1567 <tr><td class="paramname">string</td><td>the string to duplicate </td></tr>
universe@390 1568 </table>
universe@390 1569 </dd>
universe@390 1570 </dl>
universe@390 1571 <dl class="section return"><dt>Returns</dt><dd>a duplicate of the string </dd></dl>
universe@390 1572 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a97dccce03af419596dbdd592ca46a164" title="Creates a duplicate of the specified string. ">scstrdup()</a> </dd></dl>
universe@390 1573
universe@390 1574 </div>
universe@390 1575 </div>
universe@390 1576 <a id="abccf198bea3186ff2abb080cc88dcae6"></a>
universe@390 1577 <h2 class="memtitle"><span class="permalink"><a href="#abccf198bea3186ff2abb080cc88dcae6">&#9670;&nbsp;</a></span>scstrlower()</h2>
universe@390 1578
universe@390 1579 <div class="memitem">
universe@390 1580 <div class="memproto">
universe@390 1581 <table class="memname">
universe@390 1582 <tr>
universe@390 1583 <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> scstrlower </td>
universe@390 1584 <td>(</td>
universe@390 1585 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1586 <td class="paramname"><em>string</em></td><td>)</td>
universe@390 1587 <td></td>
universe@390 1588 </tr>
universe@390 1589 </table>
universe@390 1590 </div><div class="memdoc">
universe@390 1591
universe@390 1592 <p>Returns a lower case version of a string. </p>
universe@390 1593 <p>This function creates a duplicate of the input string, first (see <a class="el" href="string_8h.html#a97dccce03af419596dbdd592ca46a164" title="Creates a duplicate of the specified string. ">scstrdup()</a>).</p>
universe@390 1594 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1595 <table class="params">
universe@390 1596 <tr><td class="paramname">string</td><td>the input string </td></tr>
universe@390 1597 </table>
universe@390 1598 </dd>
universe@390 1599 </dl>
universe@390 1600 <dl class="section return"><dt>Returns</dt><dd>the resulting lower case string </dd></dl>
universe@390 1601 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a97dccce03af419596dbdd592ca46a164" title="Creates a duplicate of the specified string. ">scstrdup()</a> </dd></dl>
universe@390 1602
universe@390 1603 </div>
universe@390 1604 </div>
universe@390 1605 <a id="a3cf1e557df7ab58d03c78832c4060276"></a>
universe@390 1606 <h2 class="memtitle"><span class="permalink"><a href="#a3cf1e557df7ab58d03c78832c4060276">&#9670;&nbsp;</a></span>scstrlower_a()</h2>
universe@390 1607
universe@390 1608 <div class="memitem">
universe@390 1609 <div class="memproto">
universe@390 1610 <table class="memname">
universe@390 1611 <tr>
universe@390 1612 <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> scstrlower_a </td>
universe@390 1613 <td>(</td>
universe@390 1614 <td class="paramtype"><a class="el" href="structUcxAllocator.html">UcxAllocator</a> *&#160;</td>
universe@390 1615 <td class="paramname"><em>allocator</em>, </td>
universe@390 1616 </tr>
universe@390 1617 <tr>
universe@390 1618 <td class="paramkey"></td>
universe@390 1619 <td></td>
universe@390 1620 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1621 <td class="paramname"><em>string</em>&#160;</td>
universe@390 1622 </tr>
universe@390 1623 <tr>
universe@390 1624 <td></td>
universe@390 1625 <td>)</td>
universe@390 1626 <td></td><td></td>
universe@390 1627 </tr>
universe@390 1628 </table>
universe@390 1629 </div><div class="memdoc">
universe@390 1630
universe@390 1631 <p>Returns a lower case version of a string. </p>
universe@390 1632 <p>This function creates a duplicate of the input string, first (see <a class="el" href="string_8h.html#a8fe58921f51eb1fde038472377e63014" title="Creates a duplicate of the specified string using a UcxAllocator. ">scstrdup_a()</a>).</p>
universe@390 1633 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1634 <table class="params">
universe@390 1635 <tr><td class="paramname">allocator</td><td>the allocator used for duplicating the string </td></tr>
universe@390 1636 <tr><td class="paramname">string</td><td>the input string </td></tr>
universe@390 1637 </table>
universe@390 1638 </dd>
universe@390 1639 </dl>
universe@390 1640 <dl class="section return"><dt>Returns</dt><dd>the resulting lower case string </dd></dl>
universe@390 1641 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a8fe58921f51eb1fde038472377e63014" title="Creates a duplicate of the specified string using a UcxAllocator. ">scstrdup_a()</a> </dd></dl>
universe@390 1642
universe@390 1643 </div>
universe@390 1644 </div>
universe@390 1645 <a id="ae594f6e222ea394cef6a26c0dfad000d"></a>
universe@390 1646 <h2 class="memtitle"><span class="permalink"><a href="#ae594f6e222ea394cef6a26c0dfad000d">&#9670;&nbsp;</a></span>scstrn()</h2>
universe@390 1647
universe@390 1648 <div class="memitem">
universe@390 1649 <div class="memproto">
universe@390 1650 <table class="memname">
universe@390 1651 <tr>
universe@390 1652 <td class="memname"><a class="el" href="structscstr__t.html">scstr_t</a> scstrn </td>
universe@390 1653 <td>(</td>
universe@390 1654 <td class="paramtype">const char *&#160;</td>
universe@390 1655 <td class="paramname"><em>cstring</em>, </td>
universe@390 1656 </tr>
universe@390 1657 <tr>
universe@390 1658 <td class="paramkey"></td>
universe@390 1659 <td></td>
universe@390 1660 <td class="paramtype">size_t&#160;</td>
universe@390 1661 <td class="paramname"><em>length</em>&#160;</td>
universe@390 1662 </tr>
universe@390 1663 <tr>
universe@390 1664 <td></td>
universe@390 1665 <td>)</td>
universe@390 1666 <td></td><td></td>
universe@390 1667 </tr>
universe@390 1668 </table>
universe@390 1669 </div><div class="memdoc">
universe@390 1670
universe@390 1671 <p>Creates a new <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a> of the specified length based on a constant C string. </p>
universe@390 1672 <p><b>Note:</b> the <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a> will share the specified pointer to the C string. If you do want a copy, use <a class="el" href="string_8h.html#a97dccce03af419596dbdd592ca46a164" title="Creates a duplicate of the specified string. ">scstrdup()</a> on the return value of this function. *</p>
universe@390 1673 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1674 <table class="params">
universe@390 1675 <tr><td class="paramname">cstring</td><td>the C string to wrap </td></tr>
universe@390 1676 <tr><td class="paramname">length</td><td>the length of the string </td></tr>
universe@390 1677 </table>
universe@390 1678 </dd>
universe@390 1679 </dl>
universe@390 1680 <dl class="section return"><dt>Returns</dt><dd>a new <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a> containing the C string</dd></dl>
universe@390 1681 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a2b1d6f1eca1c1549f37107b9c026c5a6" title="Creates a new scstr_t based on a constant C string. ">scstr()</a> </dd></dl>
universe@390 1682
universe@390 1683 </div>
universe@390 1684 </div>
universe@390 1685 <a id="ac1b000030d6d197eec48c15a182055d5"></a>
universe@390 1686 <h2 class="memtitle"><span class="permalink"><a href="#ac1b000030d6d197eec48c15a182055d5">&#9670;&nbsp;</a></span>scstrnlen()</h2>
universe@390 1687
universe@390 1688 <div class="memitem">
universe@390 1689 <div class="memproto">
universe@390 1690 <table class="memname">
universe@390 1691 <tr>
universe@390 1692 <td class="memname">size_t scstrnlen </td>
universe@390 1693 <td>(</td>
universe@390 1694 <td class="paramtype">size_t&#160;</td>
universe@390 1695 <td class="paramname"><em>count</em>, </td>
universe@390 1696 </tr>
universe@390 1697 <tr>
universe@390 1698 <td class="paramkey"></td>
universe@390 1699 <td></td>
universe@390 1700 <td class="paramtype">&#160;</td>
universe@390 1701 <td class="paramname"><em>...</em>&#160;</td>
universe@390 1702 </tr>
universe@390 1703 <tr>
universe@390 1704 <td></td>
universe@390 1705 <td>)</td>
universe@390 1706 <td></td><td></td>
universe@390 1707 </tr>
universe@390 1708 </table>
universe@390 1709 </div><div class="memdoc">
universe@390 1710
universe@390 1711 <p>Returns the accumulated length of all specified strings. </p>
universe@390 1712 <p><b>Attention:</b> if the count argument is larger than the count of the specified strings, the behavior is undefined.</p>
universe@390 1713 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1714 <table class="params">
universe@390 1715 <tr><td class="paramname">count</td><td>the total number of specified strings </td></tr>
universe@390 1716 <tr><td class="paramname">...</td><td>all strings </td></tr>
universe@390 1717 </table>
universe@390 1718 </dd>
universe@390 1719 </dl>
universe@390 1720 <dl class="section return"><dt>Returns</dt><dd>the accumulated length of all strings </dd></dl>
universe@390 1721
universe@390 1722 </div>
universe@390 1723 </div>
universe@390 1724 <a id="a599ddc2f88dd1df68b72eefd91347393"></a>
universe@390 1725 <h2 class="memtitle"><span class="permalink"><a href="#a599ddc2f88dd1df68b72eefd91347393">&#9670;&nbsp;</a></span>scstrprefix()</h2>
universe@390 1726
universe@390 1727 <div class="memitem">
universe@390 1728 <div class="memproto">
universe@390 1729 <table class="memname">
universe@390 1730 <tr>
universe@390 1731 <td class="memname">int scstrprefix </td>
universe@390 1732 <td>(</td>
universe@390 1733 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1734 <td class="paramname"><em>string</em>, </td>
universe@390 1735 </tr>
universe@390 1736 <tr>
universe@390 1737 <td class="paramkey"></td>
universe@390 1738 <td></td>
universe@390 1739 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1740 <td class="paramname"><em>prefix</em>&#160;</td>
universe@390 1741 </tr>
universe@390 1742 <tr>
universe@390 1743 <td></td>
universe@390 1744 <td>)</td>
universe@390 1745 <td></td><td></td>
universe@390 1746 </tr>
universe@390 1747 </table>
universe@390 1748 </div><div class="memdoc">
universe@390 1749
universe@390 1750 <p>Checks, if a string has a specific prefix. </p>
universe@390 1751 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1752 <table class="params">
universe@390 1753 <tr><td class="paramname">string</td><td>the string to check </td></tr>
universe@390 1754 <tr><td class="paramname">prefix</td><td>the prefix the string should have </td></tr>
universe@390 1755 </table>
universe@390 1756 </dd>
universe@390 1757 </dl>
universe@390 1758 <dl class="section return"><dt>Returns</dt><dd>1, if and only if the string has the specified prefix, 0 otherwise </dd></dl>
universe@390 1759
universe@390 1760 </div>
universe@390 1761 </div>
universe@390 1762 <a id="ae389835b97cd9382e7d6a6a075323376"></a>
universe@390 1763 <h2 class="memtitle"><span class="permalink"><a href="#ae389835b97cd9382e7d6a6a075323376">&#9670;&nbsp;</a></span>scstrrchr()</h2>
universe@390 1764
universe@390 1765 <div class="memitem">
universe@390 1766 <div class="memproto">
universe@390 1767 <table class="memname">
universe@390 1768 <tr>
universe@390 1769 <td class="memname"><a class="el" href="structscstr__t.html">scstr_t</a> scstrrchr </td>
universe@390 1770 <td>(</td>
universe@390 1771 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1772 <td class="paramname"><em>string</em>, </td>
universe@390 1773 </tr>
universe@390 1774 <tr>
universe@390 1775 <td class="paramkey"></td>
universe@390 1776 <td></td>
universe@390 1777 <td class="paramtype">int&#160;</td>
universe@390 1778 <td class="paramname"><em>chr</em>&#160;</td>
universe@390 1779 </tr>
universe@390 1780 <tr>
universe@390 1781 <td></td>
universe@390 1782 <td>)</td>
universe@390 1783 <td></td><td></td>
universe@390 1784 </tr>
universe@390 1785 </table>
universe@390 1786 </div><div class="memdoc">
universe@390 1787
universe@390 1788 <p>Returns an immutable substring starting at the location of the last occurrence of the specified character. </p>
universe@390 1789 <p>If the string does not contain the character, an empty string is returned.</p>
universe@390 1790 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1791 <table class="params">
universe@390 1792 <tr><td class="paramname">string</td><td>the string where to locate the character </td></tr>
universe@390 1793 <tr><td class="paramname">chr</td><td>the character to locate </td></tr>
universe@390 1794 </table>
universe@390 1795 </dd>
universe@390 1796 </dl>
universe@390 1797 <dl class="section return"><dt>Returns</dt><dd>a substring starting at the last location of <code>chr</code></dd></dl>
universe@390 1798 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a9a6c8d8db0dda0037c3c852cce1a5060" title="Returns a substring of an immutable string starting at the specified location. ">scstrsubs()</a> </dd></dl>
universe@390 1799
universe@390 1800 </div>
universe@390 1801 </div>
universe@390 1802 <a id="a54f256c3abe811c52d58b4ff1b23f051"></a>
universe@390 1803 <h2 class="memtitle"><span class="permalink"><a href="#a54f256c3abe811c52d58b4ff1b23f051">&#9670;&nbsp;</a></span>scstrscstr()</h2>
universe@390 1804
universe@390 1805 <div class="memitem">
universe@390 1806 <div class="memproto">
universe@390 1807 <table class="memname">
universe@390 1808 <tr>
universe@390 1809 <td class="memname"><a class="el" href="structscstr__t.html">scstr_t</a> scstrscstr </td>
universe@390 1810 <td>(</td>
universe@390 1811 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1812 <td class="paramname"><em>string</em>, </td>
universe@390 1813 </tr>
universe@390 1814 <tr>
universe@390 1815 <td class="paramkey"></td>
universe@390 1816 <td></td>
universe@390 1817 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1818 <td class="paramname"><em>match</em>&#160;</td>
universe@390 1819 </tr>
universe@390 1820 <tr>
universe@390 1821 <td></td>
universe@390 1822 <td>)</td>
universe@390 1823 <td></td><td></td>
universe@390 1824 </tr>
universe@390 1825 </table>
universe@390 1826 </div><div class="memdoc">
universe@390 1827
universe@390 1828 <p>Returns an immutable substring starting at the location of the first occurrence of the specified immutable string. </p>
universe@390 1829 <p>If the string does not contain the other string, an empty string is returned.</p>
universe@390 1830 <p>If <code>match</code> is an empty string, the complete <code>string</code> is returned.</p>
universe@390 1831 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1832 <table class="params">
universe@390 1833 <tr><td class="paramname">string</td><td>the string to be scanned </td></tr>
universe@390 1834 <tr><td class="paramname">match</td><td>string containing the sequence of characters to match </td></tr>
universe@390 1835 </table>
universe@390 1836 </dd>
universe@390 1837 </dl>
universe@390 1838 <dl class="section return"><dt>Returns</dt><dd>a substring starting at the first occurrence of <code>match</code>, or an empty string, if the sequence is not present in <code>string</code> </dd></dl>
universe@390 1839
universe@390 1840 </div>
universe@390 1841 </div>
universe@390 1842 <a id="ae71cac352b00230848bde358f0fb05ea"></a>
universe@390 1843 <h2 class="memtitle"><span class="permalink"><a href="#ae71cac352b00230848bde358f0fb05ea">&#9670;&nbsp;</a></span>scstrsplit()</h2>
universe@390 1844
universe@390 1845 <div class="memitem">
universe@390 1846 <div class="memproto">
universe@390 1847 <table class="memname">
universe@390 1848 <tr>
universe@390 1849 <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a>* scstrsplit </td>
universe@390 1850 <td>(</td>
universe@390 1851 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1852 <td class="paramname"><em>string</em>, </td>
universe@390 1853 </tr>
universe@390 1854 <tr>
universe@390 1855 <td class="paramkey"></td>
universe@390 1856 <td></td>
universe@390 1857 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1858 <td class="paramname"><em>delim</em>, </td>
universe@390 1859 </tr>
universe@390 1860 <tr>
universe@390 1861 <td class="paramkey"></td>
universe@390 1862 <td></td>
universe@390 1863 <td class="paramtype">ssize_t *&#160;</td>
universe@390 1864 <td class="paramname"><em>count</em>&#160;</td>
universe@390 1865 </tr>
universe@390 1866 <tr>
universe@390 1867 <td></td>
universe@390 1868 <td>)</td>
universe@390 1869 <td></td><td></td>
universe@390 1870 </tr>
universe@390 1871 </table>
universe@390 1872 </div><div class="memdoc">
universe@390 1873
universe@390 1874 <p>Splits a string into parts by using a delimiter string. </p>
universe@390 1875 <p>This function will return <code>NULL</code>, if one of the following happens: </p><ul>
universe@390 1876 <li>
universe@390 1877 the string length is zero </li>
universe@390 1878 <li>
universe@390 1879 the delimeter length is zero </li>
universe@390 1880 <li>
universe@390 1881 the string equals the delimeter </li>
universe@390 1882 <li>
universe@390 1883 memory allocation fails </li>
universe@390 1884 </ul>
universe@390 1885 <p>The integer referenced by <code>count</code> is used as input and determines the maximum size of the resulting array, i.e. the maximum count of splits to perform + 1.</p>
universe@390 1886 <p>The integer referenced by <code>count</code> is also used as output and is set to </p><ul>
universe@390 1887 <li>
universe@390 1888 -2, on memory allocation errors </li>
universe@390 1889 <li>
universe@390 1890 -1, if either the string or the delimiter is an empty string </li>
universe@390 1891 <li>
universe@390 1892 0, if the string equals the delimiter </li>
universe@390 1893 <li>
universe@390 1894 1, if the string does not contain the delimiter </li>
universe@390 1895 <li>
universe@390 1896 the count of array items, otherwise </li>
universe@390 1897 </ul>
universe@390 1898 <p>If the string starts with the delimiter, the first item of the resulting array will be an empty string.</p>
universe@390 1899 <p>If the string ends with the delimiter and the maximum list size is not exceeded, the last array item will be an empty string. In case the list size would be exceeded, the last array item will be the remaining string after the last split, <em>including</em> the terminating delimiter.</p>
universe@390 1900 <p><b>Attention:</b> The array pointer <b>AND</b> all <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> of the array items must be manually passed to <code>free()</code>. Use <a class="el" href="string_8h.html#a52906455ae530c9cdc6812c8e6d9bdef" title="Performing scstrsplit() using a UcxAllocator. ">scstrsplit_a()</a> with an allocator to managed memory, to avoid this.</p>
universe@390 1901 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1902 <table class="params">
universe@390 1903 <tr><td class="paramname">string</td><td>the string to split </td></tr>
universe@390 1904 <tr><td class="paramname">delim</td><td>the delimiter string </td></tr>
universe@390 1905 <tr><td class="paramname">count</td><td>IN: the maximum size of the resulting array (0 = no limit), OUT: the actual size of the array </td></tr>
universe@390 1906 </table>
universe@390 1907 </dd>
universe@390 1908 </dl>
universe@390 1909 <dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> array containing the split strings or <code>NULL</code> on error</dd></dl>
universe@390 1910 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a52906455ae530c9cdc6812c8e6d9bdef" title="Performing scstrsplit() using a UcxAllocator. ">scstrsplit_a()</a> </dd></dl>
universe@390 1911
universe@390 1912 </div>
universe@390 1913 </div>
universe@390 1914 <a id="a52906455ae530c9cdc6812c8e6d9bdef"></a>
universe@390 1915 <h2 class="memtitle"><span class="permalink"><a href="#a52906455ae530c9cdc6812c8e6d9bdef">&#9670;&nbsp;</a></span>scstrsplit_a()</h2>
universe@390 1916
universe@390 1917 <div class="memitem">
universe@390 1918 <div class="memproto">
universe@390 1919 <table class="memname">
universe@390 1920 <tr>
universe@390 1921 <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a>* scstrsplit_a </td>
universe@390 1922 <td>(</td>
universe@390 1923 <td class="paramtype"><a class="el" href="structUcxAllocator.html">UcxAllocator</a> *&#160;</td>
universe@390 1924 <td class="paramname"><em>allocator</em>, </td>
universe@390 1925 </tr>
universe@390 1926 <tr>
universe@390 1927 <td class="paramkey"></td>
universe@390 1928 <td></td>
universe@390 1929 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1930 <td class="paramname"><em>string</em>, </td>
universe@390 1931 </tr>
universe@390 1932 <tr>
universe@390 1933 <td class="paramkey"></td>
universe@390 1934 <td></td>
universe@390 1935 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1936 <td class="paramname"><em>delim</em>, </td>
universe@390 1937 </tr>
universe@390 1938 <tr>
universe@390 1939 <td class="paramkey"></td>
universe@390 1940 <td></td>
universe@390 1941 <td class="paramtype">ssize_t *&#160;</td>
universe@390 1942 <td class="paramname"><em>count</em>&#160;</td>
universe@390 1943 </tr>
universe@390 1944 <tr>
universe@390 1945 <td></td>
universe@390 1946 <td>)</td>
universe@390 1947 <td></td><td></td>
universe@390 1948 </tr>
universe@390 1949 </table>
universe@390 1950 </div><div class="memdoc">
universe@390 1951
universe@390 1952 <p>Performing <a class="el" href="string_8h.html#ae71cac352b00230848bde358f0fb05ea" title="Splits a string into parts by using a delimiter string. ">scstrsplit()</a> using a <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a>. </p>
universe@390 1953 <p><em>Read the description of <a class="el" href="string_8h.html#ae71cac352b00230848bde358f0fb05ea" title="Splits a string into parts by using a delimiter string. ">scstrsplit()</a> for details.</em></p>
universe@390 1954 <p>The memory for the <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> pointers of the array items and the memory for the <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> array itself are allocated by using the <a class="el" href="structUcxAllocator.html#a013376172be39ed54f77c4be6898845a" title="The malloc() function for this allocator. ">UcxAllocator.malloc()</a> function.</p>
universe@390 1955 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1956 <table class="params">
universe@390 1957 <tr><td class="paramname">allocator</td><td>the <a class="el" href="structUcxAllocator.html" title="UCX allocator data structure containing memory management functions. ">UcxAllocator</a> used for allocating memory </td></tr>
universe@390 1958 <tr><td class="paramname">string</td><td>the string to split </td></tr>
universe@390 1959 <tr><td class="paramname">delim</td><td>the delimiter string </td></tr>
universe@390 1960 <tr><td class="paramname">count</td><td>IN: the maximum size of the resulting array (0 = no limit), OUT: the actual size of the array </td></tr>
universe@390 1961 </table>
universe@390 1962 </dd>
universe@390 1963 </dl>
universe@390 1964 <dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> array containing the split strings or <code>NULL</code> on error</dd></dl>
universe@390 1965 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#ae71cac352b00230848bde358f0fb05ea" title="Splits a string into parts by using a delimiter string. ">scstrsplit()</a> </dd></dl>
universe@390 1966
universe@390 1967 </div>
universe@390 1968 </div>
universe@390 1969 <a id="aa4362cb36c6629f9d8484739fd827748"></a>
universe@390 1970 <h2 class="memtitle"><span class="permalink"><a href="#aa4362cb36c6629f9d8484739fd827748">&#9670;&nbsp;</a></span>scstrsstr()</h2>
universe@390 1971
universe@390 1972 <div class="memitem">
universe@390 1973 <div class="memproto">
universe@390 1974 <table class="memname">
universe@390 1975 <tr>
universe@390 1976 <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> scstrsstr </td>
universe@390 1977 <td>(</td>
universe@390 1978 <td class="paramtype"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td>
universe@390 1979 <td class="paramname"><em>string</em>, </td>
universe@390 1980 </tr>
universe@390 1981 <tr>
universe@390 1982 <td class="paramkey"></td>
universe@390 1983 <td></td>
universe@390 1984 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 1985 <td class="paramname"><em>match</em>&#160;</td>
universe@390 1986 </tr>
universe@390 1987 <tr>
universe@390 1988 <td></td>
universe@390 1989 <td>)</td>
universe@390 1990 <td></td><td></td>
universe@390 1991 </tr>
universe@390 1992 </table>
universe@390 1993 </div><div class="memdoc">
universe@390 1994
universe@390 1995 <p>Returns a substring starting at the location of the first occurrence of the specified string. </p>
universe@390 1996 <p>If the string does not contain the other string, an empty string is returned.</p>
universe@390 1997 <p>If <code>match</code> is an empty string, the complete <code>string</code> is returned.</p>
universe@390 1998 <dl class="params"><dt>Parameters</dt><dd>
universe@390 1999 <table class="params">
universe@390 2000 <tr><td class="paramname">string</td><td>the string to be scanned </td></tr>
universe@390 2001 <tr><td class="paramname">match</td><td>string containing the sequence of characters to match </td></tr>
universe@390 2002 </table>
universe@390 2003 </dd>
universe@390 2004 </dl>
universe@390 2005 <dl class="section return"><dt>Returns</dt><dd>a substring starting at the first occurrence of <code>match</code>, or an empty string, if the sequence is not present in <code>string</code> </dd></dl>
universe@390 2006
universe@390 2007 </div>
universe@390 2008 </div>
universe@390 2009 <a id="a9a6c8d8db0dda0037c3c852cce1a5060"></a>
universe@390 2010 <h2 class="memtitle"><span class="permalink"><a href="#a9a6c8d8db0dda0037c3c852cce1a5060">&#9670;&nbsp;</a></span>scstrsubs()</h2>
universe@390 2011
universe@390 2012 <div class="memitem">
universe@390 2013 <div class="memproto">
universe@390 2014 <table class="memname">
universe@390 2015 <tr>
universe@390 2016 <td class="memname"><a class="el" href="structscstr__t.html">scstr_t</a> scstrsubs </td>
universe@390 2017 <td>(</td>
universe@390 2018 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 2019 <td class="paramname"><em>string</em>, </td>
universe@390 2020 </tr>
universe@390 2021 <tr>
universe@390 2022 <td class="paramkey"></td>
universe@390 2023 <td></td>
universe@390 2024 <td class="paramtype">size_t&#160;</td>
universe@390 2025 <td class="paramname"><em>start</em>&#160;</td>
universe@390 2026 </tr>
universe@390 2027 <tr>
universe@390 2028 <td></td>
universe@390 2029 <td>)</td>
universe@390 2030 <td></td><td></td>
universe@390 2031 </tr>
universe@390 2032 </table>
universe@390 2033 </div><div class="memdoc">
universe@390 2034
universe@390 2035 <p>Returns a substring of an immutable string starting at the specified location. </p>
universe@390 2036 <p><b>Attention:</b> the new string references the same memory area as the input string and is <b>NOT</b> required to be <code>NULL</code>-terminated. Use <a class="el" href="string_8h.html#a97dccce03af419596dbdd592ca46a164" title="Creates a duplicate of the specified string. ">scstrdup()</a> to get a copy.</p>
universe@390 2037 <dl class="params"><dt>Parameters</dt><dd>
universe@390 2038 <table class="params">
universe@390 2039 <tr><td class="paramname">string</td><td>input string </td></tr>
universe@390 2040 <tr><td class="paramname">start</td><td>start location of the substring </td></tr>
universe@390 2041 </table>
universe@390 2042 </dd>
universe@390 2043 </dl>
universe@390 2044 <dl class="section return"><dt>Returns</dt><dd>a substring of <code>string</code> starting at <code>start</code></dd></dl>
universe@390 2045 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#ad50f0f67b906fad0744f46bcb51e144b" title="Returns a substring of an immutable string with a maximum length starting at the specified location...">scstrsubsl()</a> </dd>
universe@390 2046 <dd>
universe@390 2047 <a class="el" href="string_8h.html#a5836d6a7a744791c35e5c17bdc394a87" title="Returns an immutable substring starting at the location of the first occurrence of the specified char...">scstrchr()</a> </dd></dl>
universe@390 2048
universe@390 2049 </div>
universe@390 2050 </div>
universe@390 2051 <a id="ad50f0f67b906fad0744f46bcb51e144b"></a>
universe@390 2052 <h2 class="memtitle"><span class="permalink"><a href="#ad50f0f67b906fad0744f46bcb51e144b">&#9670;&nbsp;</a></span>scstrsubsl()</h2>
universe@390 2053
universe@390 2054 <div class="memitem">
universe@390 2055 <div class="memproto">
universe@390 2056 <table class="memname">
universe@390 2057 <tr>
universe@390 2058 <td class="memname"><a class="el" href="structscstr__t.html">scstr_t</a> scstrsubsl </td>
universe@390 2059 <td>(</td>
universe@390 2060 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 2061 <td class="paramname"><em>string</em>, </td>
universe@390 2062 </tr>
universe@390 2063 <tr>
universe@390 2064 <td class="paramkey"></td>
universe@390 2065 <td></td>
universe@390 2066 <td class="paramtype">size_t&#160;</td>
universe@390 2067 <td class="paramname"><em>start</em>, </td>
universe@390 2068 </tr>
universe@390 2069 <tr>
universe@390 2070 <td class="paramkey"></td>
universe@390 2071 <td></td>
universe@390 2072 <td class="paramtype">size_t&#160;</td>
universe@390 2073 <td class="paramname"><em>length</em>&#160;</td>
universe@390 2074 </tr>
universe@390 2075 <tr>
universe@390 2076 <td></td>
universe@390 2077 <td>)</td>
universe@390 2078 <td></td><td></td>
universe@390 2079 </tr>
universe@390 2080 </table>
universe@390 2081 </div><div class="memdoc">
universe@390 2082
universe@390 2083 <p>Returns a substring of an immutable string with a maximum length starting at the specified location. </p>
universe@390 2084 <p><b>Attention:</b> the new string references the same memory area as the input string and is <b>NOT</b> required to be <code>NULL</code>-terminated. Use <a class="el" href="string_8h.html#a97dccce03af419596dbdd592ca46a164" title="Creates a duplicate of the specified string. ">scstrdup()</a> to get a copy.</p>
universe@390 2085 <dl class="params"><dt>Parameters</dt><dd>
universe@390 2086 <table class="params">
universe@390 2087 <tr><td class="paramname">string</td><td>input string </td></tr>
universe@390 2088 <tr><td class="paramname">start</td><td>start location of the substring </td></tr>
universe@390 2089 <tr><td class="paramname">length</td><td>the maximum length of the substring </td></tr>
universe@390 2090 </table>
universe@390 2091 </dd>
universe@390 2092 </dl>
universe@390 2093 <dl class="section return"><dt>Returns</dt><dd>a substring of <code>string</code> starting at <code>start</code> with a maximum length of <code>length</code></dd></dl>
universe@390 2094 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a9a6c8d8db0dda0037c3c852cce1a5060" title="Returns a substring of an immutable string starting at the specified location. ">scstrsubs()</a> </dd>
universe@390 2095 <dd>
universe@390 2096 <a class="el" href="string_8h.html#a5836d6a7a744791c35e5c17bdc394a87" title="Returns an immutable substring starting at the location of the first occurrence of the specified char...">scstrchr()</a> </dd></dl>
universe@390 2097
universe@390 2098 </div>
universe@390 2099 </div>
universe@390 2100 <a id="a1f0ae316a2afe85d5b4655e6ece6721a"></a>
universe@390 2101 <h2 class="memtitle"><span class="permalink"><a href="#a1f0ae316a2afe85d5b4655e6ece6721a">&#9670;&nbsp;</a></span>scstrsuffix()</h2>
universe@390 2102
universe@390 2103 <div class="memitem">
universe@390 2104 <div class="memproto">
universe@390 2105 <table class="memname">
universe@390 2106 <tr>
universe@390 2107 <td class="memname">int scstrsuffix </td>
universe@390 2108 <td>(</td>
universe@390 2109 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 2110 <td class="paramname"><em>string</em>, </td>
universe@390 2111 </tr>
universe@390 2112 <tr>
universe@390 2113 <td class="paramkey"></td>
universe@390 2114 <td></td>
universe@390 2115 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 2116 <td class="paramname"><em>suffix</em>&#160;</td>
universe@390 2117 </tr>
universe@390 2118 <tr>
universe@390 2119 <td></td>
universe@390 2120 <td>)</td>
universe@390 2121 <td></td><td></td>
universe@390 2122 </tr>
universe@390 2123 </table>
universe@390 2124 </div><div class="memdoc">
universe@390 2125
universe@390 2126 <p>Checks, if a string has a specific suffix. </p>
universe@390 2127 <dl class="params"><dt>Parameters</dt><dd>
universe@390 2128 <table class="params">
universe@390 2129 <tr><td class="paramname">string</td><td>the string to check </td></tr>
universe@390 2130 <tr><td class="paramname">suffix</td><td>the suffix the string should have </td></tr>
universe@390 2131 </table>
universe@390 2132 </dd>
universe@390 2133 </dl>
universe@390 2134 <dl class="section return"><dt>Returns</dt><dd>1, if and only if the string has the specified suffix, 0 otherwise </dd></dl>
universe@390 2135
universe@390 2136 </div>
universe@390 2137 </div>
universe@390 2138 <a id="ad374b16eb1be8b48019debad9b9f268c"></a>
universe@390 2139 <h2 class="memtitle"><span class="permalink"><a href="#ad374b16eb1be8b48019debad9b9f268c">&#9670;&nbsp;</a></span>scstrtrim()</h2>
universe@390 2140
universe@390 2141 <div class="memitem">
universe@390 2142 <div class="memproto">
universe@390 2143 <table class="memname">
universe@390 2144 <tr>
universe@390 2145 <td class="memname"><a class="el" href="structscstr__t.html">scstr_t</a> scstrtrim </td>
universe@390 2146 <td>(</td>
universe@390 2147 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 2148 <td class="paramname"><em>string</em></td><td>)</td>
universe@390 2149 <td></td>
universe@390 2150 </tr>
universe@390 2151 </table>
universe@390 2152 </div><div class="memdoc">
universe@390 2153
universe@390 2154 <p>Omits leading and trailing spaces. </p>
universe@390 2155 <p>This function returns a new <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a> containing a trimmed version of the specified string.</p>
universe@390 2156 <p><b>Note:</b> the new <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a> references the same memory, thus you <b>MUST NOT</b> pass the <a class="el" href="structscstr__t.html#a305fd48934b474a9bf4a40869030e391" title="A constant pointer to the immutable string (not necessarily NULL-terminated) ">scstr_t.ptr</a> of the return value to <code>free()</code>. It is also highly recommended to avoid assignments like <code>mystr = scstrtrim(mystr);</code> as you lose the reference to the source string. Assignments of this type are only permitted, if the <a class="el" href="structscstr__t.html#a305fd48934b474a9bf4a40869030e391" title="A constant pointer to the immutable string (not necessarily NULL-terminated) ">scstr_t.ptr</a> of the source string does not need to be freed or if another reference to the source string exists.</p>
universe@390 2157 <dl class="params"><dt>Parameters</dt><dd>
universe@390 2158 <table class="params">
universe@390 2159 <tr><td class="paramname">string</td><td>the string that shall be trimmed </td></tr>
universe@390 2160 </table>
universe@390 2161 </dd>
universe@390 2162 </dl>
universe@390 2163 <dl class="section return"><dt>Returns</dt><dd>a new <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a> containing the trimmed string </dd></dl>
universe@390 2164
universe@390 2165 </div>
universe@390 2166 </div>
universe@390 2167 <a id="af3dd09ec9d11162fe0075f4e60f41240"></a>
universe@390 2168 <h2 class="memtitle"><span class="permalink"><a href="#af3dd09ec9d11162fe0075f4e60f41240">&#9670;&nbsp;</a></span>scstrupper()</h2>
universe@390 2169
universe@390 2170 <div class="memitem">
universe@390 2171 <div class="memproto">
universe@390 2172 <table class="memname">
universe@390 2173 <tr>
universe@390 2174 <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> scstrupper </td>
universe@390 2175 <td>(</td>
universe@390 2176 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 2177 <td class="paramname"><em>string</em></td><td>)</td>
universe@390 2178 <td></td>
universe@390 2179 </tr>
universe@390 2180 </table>
universe@390 2181 </div><div class="memdoc">
universe@390 2182
universe@390 2183 <p>Returns a upper case version of a string. </p>
universe@390 2184 <p>This function creates a duplicate of the input string, first (see <a class="el" href="string_8h.html#a97dccce03af419596dbdd592ca46a164" title="Creates a duplicate of the specified string. ">scstrdup()</a>).</p>
universe@390 2185 <dl class="params"><dt>Parameters</dt><dd>
universe@390 2186 <table class="params">
universe@390 2187 <tr><td class="paramname">string</td><td>the input string </td></tr>
universe@390 2188 </table>
universe@390 2189 </dd>
universe@390 2190 </dl>
universe@390 2191 <dl class="section return"><dt>Returns</dt><dd>the resulting upper case string </dd></dl>
universe@390 2192 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a97dccce03af419596dbdd592ca46a164" title="Creates a duplicate of the specified string. ">scstrdup()</a> </dd></dl>
universe@390 2193
universe@390 2194 </div>
universe@390 2195 </div>
universe@390 2196 <a id="aea94613eb74668cc05d365803d32bfad"></a>
universe@390 2197 <h2 class="memtitle"><span class="permalink"><a href="#aea94613eb74668cc05d365803d32bfad">&#9670;&nbsp;</a></span>scstrupper_a()</h2>
universe@390 2198
universe@390 2199 <div class="memitem">
universe@390 2200 <div class="memproto">
universe@390 2201 <table class="memname">
universe@390 2202 <tr>
universe@390 2203 <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> scstrupper_a </td>
universe@390 2204 <td>(</td>
universe@390 2205 <td class="paramtype"><a class="el" href="structUcxAllocator.html">UcxAllocator</a> *&#160;</td>
universe@390 2206 <td class="paramname"><em>allocator</em>, </td>
universe@390 2207 </tr>
universe@390 2208 <tr>
universe@390 2209 <td class="paramkey"></td>
universe@390 2210 <td></td>
universe@390 2211 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 2212 <td class="paramname"><em>string</em>&#160;</td>
universe@390 2213 </tr>
universe@390 2214 <tr>
universe@390 2215 <td></td>
universe@390 2216 <td>)</td>
universe@390 2217 <td></td><td></td>
universe@390 2218 </tr>
universe@390 2219 </table>
universe@390 2220 </div><div class="memdoc">
universe@390 2221
universe@390 2222 <p>Returns a upper case version of a string. </p>
universe@390 2223 <p>This function creates a duplicate of the input string, first (see <a class="el" href="string_8h.html#a8fe58921f51eb1fde038472377e63014" title="Creates a duplicate of the specified string using a UcxAllocator. ">scstrdup_a()</a>).</p>
universe@390 2224 <dl class="params"><dt>Parameters</dt><dd>
universe@390 2225 <table class="params">
universe@390 2226 <tr><td class="paramname">allocator</td><td>the allocator used for duplicating the string </td></tr>
universe@390 2227 <tr><td class="paramname">string</td><td>the input string </td></tr>
universe@390 2228 </table>
universe@390 2229 </dd>
universe@390 2230 </dl>
universe@390 2231 <dl class="section return"><dt>Returns</dt><dd>the resulting upper case string </dd></dl>
universe@390 2232 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a8fe58921f51eb1fde038472377e63014" title="Creates a duplicate of the specified string using a UcxAllocator. ">scstrdup_a()</a> </dd></dl>
universe@390 2233
universe@390 2234 </div>
universe@390 2235 </div>
universe@390 2236 <a id="a539eb7059251a051ee5d179526a23e9a"></a>
universe@390 2237 <h2 class="memtitle"><span class="permalink"><a href="#a539eb7059251a051ee5d179526a23e9a">&#9670;&nbsp;</a></span>sstr()</h2>
universe@390 2238
universe@390 2239 <div class="memitem">
universe@390 2240 <div class="memproto">
universe@390 2241 <table class="memname">
universe@390 2242 <tr>
universe@390 2243 <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> sstr </td>
universe@390 2244 <td>(</td>
universe@390 2245 <td class="paramtype">char *&#160;</td>
universe@390 2246 <td class="paramname"><em>cstring</em></td><td>)</td>
universe@390 2247 <td></td>
universe@390 2248 </tr>
universe@390 2249 </table>
universe@390 2250 </div><div class="memdoc">
universe@390 2251
universe@390 2252 <p>Creates a new <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> based on a C string. </p>
universe@390 2253 <p>The length is implicitly inferred by using a call to <code>strlen()</code>.</p>
universe@390 2254 <p><b>Note:</b> the <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> will share the specified pointer to the C string. If you do want a copy, use <a class="el" href="string_8h.html#accbfd2b459a028d7af9fb7df6f977d80" title="Creates a duplicate of the specified string. ">sstrdup()</a> on the return value of this function.</p>
universe@390 2255 <p>If you need to wrap a constant string, use <a class="el" href="string_8h.html#a2b1d6f1eca1c1549f37107b9c026c5a6" title="Creates a new scstr_t based on a constant C string. ">scstr()</a>.</p>
universe@390 2256 <dl class="params"><dt>Parameters</dt><dd>
universe@390 2257 <table class="params">
universe@390 2258 <tr><td class="paramname">cstring</td><td>the C string to wrap </td></tr>
universe@390 2259 </table>
universe@390 2260 </dd>
universe@390 2261 </dl>
universe@390 2262 <dl class="section return"><dt>Returns</dt><dd>a new <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> containing the C string</dd></dl>
universe@390 2263 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a2744c38ac44abf3e01fa059056dcf36c" title="Creates a new sstr_t of the specified length based on a C string. ">sstrn()</a> </dd></dl>
universe@390 2264
universe@390 2265 </div>
universe@390 2266 </div>
universe@390 2267 <a id="af80898a0b75955eb2579298c3ae2c481"></a>
universe@390 2268 <h2 class="memtitle"><span class="permalink"><a href="#af80898a0b75955eb2579298c3ae2c481">&#9670;&nbsp;</a></span>sstrchr()</h2>
universe@390 2269
universe@390 2270 <div class="memitem">
universe@390 2271 <div class="memproto">
universe@390 2272 <table class="memname">
universe@390 2273 <tr>
universe@390 2274 <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> sstrchr </td>
universe@390 2275 <td>(</td>
universe@390 2276 <td class="paramtype"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td>
universe@390 2277 <td class="paramname"><em>string</em>, </td>
universe@390 2278 </tr>
universe@390 2279 <tr>
universe@390 2280 <td class="paramkey"></td>
universe@390 2281 <td></td>
universe@390 2282 <td class="paramtype">int&#160;</td>
universe@390 2283 <td class="paramname"><em>chr</em>&#160;</td>
universe@390 2284 </tr>
universe@390 2285 <tr>
universe@390 2286 <td></td>
universe@390 2287 <td>)</td>
universe@390 2288 <td></td><td></td>
universe@390 2289 </tr>
universe@390 2290 </table>
universe@390 2291 </div><div class="memdoc">
universe@390 2292
universe@390 2293 <p>Returns a substring starting at the location of the first occurrence of the specified character. </p>
universe@390 2294 <p>If the string does not contain the character, an empty string is returned.</p>
universe@390 2295 <dl class="params"><dt>Parameters</dt><dd>
universe@390 2296 <table class="params">
universe@390 2297 <tr><td class="paramname">string</td><td>the string where to locate the character </td></tr>
universe@390 2298 <tr><td class="paramname">chr</td><td>the character to locate </td></tr>
universe@390 2299 </table>
universe@390 2300 </dd>
universe@390 2301 </dl>
universe@390 2302 <dl class="section return"><dt>Returns</dt><dd>a substring starting at the first location of <code>chr</code></dd></dl>
universe@390 2303 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a5eb9e0e1f26cf7fbecc038cd90e8b258" title="Returns a substring starting at the specified location. ">sstrsubs()</a> </dd></dl>
universe@390 2304
universe@390 2305 </div>
universe@390 2306 </div>
universe@390 2307 <a id="a2744c38ac44abf3e01fa059056dcf36c"></a>
universe@390 2308 <h2 class="memtitle"><span class="permalink"><a href="#a2744c38ac44abf3e01fa059056dcf36c">&#9670;&nbsp;</a></span>sstrn()</h2>
universe@390 2309
universe@390 2310 <div class="memitem">
universe@390 2311 <div class="memproto">
universe@390 2312 <table class="memname">
universe@390 2313 <tr>
universe@390 2314 <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> sstrn </td>
universe@390 2315 <td>(</td>
universe@390 2316 <td class="paramtype">char *&#160;</td>
universe@390 2317 <td class="paramname"><em>cstring</em>, </td>
universe@390 2318 </tr>
universe@390 2319 <tr>
universe@390 2320 <td class="paramkey"></td>
universe@390 2321 <td></td>
universe@390 2322 <td class="paramtype">size_t&#160;</td>
universe@390 2323 <td class="paramname"><em>length</em>&#160;</td>
universe@390 2324 </tr>
universe@390 2325 <tr>
universe@390 2326 <td></td>
universe@390 2327 <td>)</td>
universe@390 2328 <td></td><td></td>
universe@390 2329 </tr>
universe@390 2330 </table>
universe@390 2331 </div><div class="memdoc">
universe@390 2332
universe@390 2333 <p>Creates a new <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> of the specified length based on a C string. </p>
universe@390 2334 <p><b>Note:</b> the <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> will share the specified pointer to the C string. If you do want a copy, use <a class="el" href="string_8h.html#accbfd2b459a028d7af9fb7df6f977d80" title="Creates a duplicate of the specified string. ">sstrdup()</a> on the return value of this function.</p>
universe@390 2335 <p>If you need to wrap a constant string, use <a class="el" href="string_8h.html#ae594f6e222ea394cef6a26c0dfad000d" title="Creates a new scstr_t of the specified length based on a constant C string. ">scstrn()</a>.</p>
universe@390 2336 <dl class="params"><dt>Parameters</dt><dd>
universe@390 2337 <table class="params">
universe@390 2338 <tr><td class="paramname">cstring</td><td>the C string to wrap </td></tr>
universe@390 2339 <tr><td class="paramname">length</td><td>the length of the string </td></tr>
universe@390 2340 </table>
universe@390 2341 </dd>
universe@390 2342 </dl>
universe@390 2343 <dl class="section return"><dt>Returns</dt><dd>a new <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> containing the C string</dd></dl>
universe@390 2344 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a539eb7059251a051ee5d179526a23e9a" title="Creates a new sstr_t based on a C string. ">sstr()</a> </dd>
universe@390 2345 <dd>
universe@390 2346 <a class="el" href="string_8h.html#a8fa17c8cf4c36df48f4108c36da8573e" title="Shortcut for the conversion of a C string to a sstr_t. ">S()</a> </dd></dl>
universe@390 2347
universe@390 2348 </div>
universe@390 2349 </div>
universe@390 2350 <a id="adae3f59957ca328e1da5285cb8b02a72"></a>
universe@390 2351 <h2 class="memtitle"><span class="permalink"><a href="#adae3f59957ca328e1da5285cb8b02a72">&#9670;&nbsp;</a></span>sstrrchr()</h2>
universe@390 2352
universe@390 2353 <div class="memitem">
universe@390 2354 <div class="memproto">
universe@390 2355 <table class="memname">
universe@390 2356 <tr>
universe@390 2357 <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> sstrrchr </td>
universe@390 2358 <td>(</td>
universe@390 2359 <td class="paramtype"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td>
universe@390 2360 <td class="paramname"><em>string</em>, </td>
universe@390 2361 </tr>
universe@390 2362 <tr>
universe@390 2363 <td class="paramkey"></td>
universe@390 2364 <td></td>
universe@390 2365 <td class="paramtype">int&#160;</td>
universe@390 2366 <td class="paramname"><em>chr</em>&#160;</td>
universe@390 2367 </tr>
universe@390 2368 <tr>
universe@390 2369 <td></td>
universe@390 2370 <td>)</td>
universe@390 2371 <td></td><td></td>
universe@390 2372 </tr>
universe@390 2373 </table>
universe@390 2374 </div><div class="memdoc">
universe@390 2375
universe@390 2376 <p>Returns a substring starting at the location of the last occurrence of the specified character. </p>
universe@390 2377 <p>If the string does not contain the character, an empty string is returned.</p>
universe@390 2378 <dl class="params"><dt>Parameters</dt><dd>
universe@390 2379 <table class="params">
universe@390 2380 <tr><td class="paramname">string</td><td>the string where to locate the character </td></tr>
universe@390 2381 <tr><td class="paramname">chr</td><td>the character to locate </td></tr>
universe@390 2382 </table>
universe@390 2383 </dd>
universe@390 2384 </dl>
universe@390 2385 <dl class="section return"><dt>Returns</dt><dd>a substring starting at the last location of <code>chr</code></dd></dl>
universe@390 2386 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a5eb9e0e1f26cf7fbecc038cd90e8b258" title="Returns a substring starting at the specified location. ">sstrsubs()</a> </dd></dl>
universe@390 2387
universe@390 2388 </div>
universe@390 2389 </div>
universe@390 2390 <a id="a5eb9e0e1f26cf7fbecc038cd90e8b258"></a>
universe@390 2391 <h2 class="memtitle"><span class="permalink"><a href="#a5eb9e0e1f26cf7fbecc038cd90e8b258">&#9670;&nbsp;</a></span>sstrsubs()</h2>
universe@390 2392
universe@390 2393 <div class="memitem">
universe@390 2394 <div class="memproto">
universe@390 2395 <table class="memname">
universe@390 2396 <tr>
universe@390 2397 <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> sstrsubs </td>
universe@390 2398 <td>(</td>
universe@390 2399 <td class="paramtype"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td>
universe@390 2400 <td class="paramname"><em>string</em>, </td>
universe@390 2401 </tr>
universe@390 2402 <tr>
universe@390 2403 <td class="paramkey"></td>
universe@390 2404 <td></td>
universe@390 2405 <td class="paramtype">size_t&#160;</td>
universe@390 2406 <td class="paramname"><em>start</em>&#160;</td>
universe@390 2407 </tr>
universe@390 2408 <tr>
universe@390 2409 <td></td>
universe@390 2410 <td>)</td>
universe@390 2411 <td></td><td></td>
universe@390 2412 </tr>
universe@390 2413 </table>
universe@390 2414 </div><div class="memdoc">
universe@390 2415
universe@390 2416 <p>Returns a substring starting at the specified location. </p>
universe@390 2417 <p><b>Attention:</b> the new string references the same memory area as the input string and is <b>NOT</b> required to be <code>NULL</code>-terminated. Use <a class="el" href="string_8h.html#accbfd2b459a028d7af9fb7df6f977d80" title="Creates a duplicate of the specified string. ">sstrdup()</a> to get a copy.</p>
universe@390 2418 <dl class="params"><dt>Parameters</dt><dd>
universe@390 2419 <table class="params">
universe@390 2420 <tr><td class="paramname">string</td><td>input string </td></tr>
universe@390 2421 <tr><td class="paramname">start</td><td>start location of the substring </td></tr>
universe@390 2422 </table>
universe@390 2423 </dd>
universe@390 2424 </dl>
universe@390 2425 <dl class="section return"><dt>Returns</dt><dd>a substring of <code>string</code> starting at <code>start</code></dd></dl>
universe@390 2426 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a78925c91af54f23cebd20ff99ef4331a" title="Returns a substring with the given length starting at the specified location. ">sstrsubsl()</a> </dd>
universe@390 2427 <dd>
universe@390 2428 <a class="el" href="string_8h.html#af80898a0b75955eb2579298c3ae2c481" title="Returns a substring starting at the location of the first occurrence of the specified character...">sstrchr()</a> </dd></dl>
universe@390 2429
universe@390 2430 </div>
universe@390 2431 </div>
universe@390 2432 <a id="a78925c91af54f23cebd20ff99ef4331a"></a>
universe@390 2433 <h2 class="memtitle"><span class="permalink"><a href="#a78925c91af54f23cebd20ff99ef4331a">&#9670;&nbsp;</a></span>sstrsubsl()</h2>
universe@390 2434
universe@390 2435 <div class="memitem">
universe@390 2436 <div class="memproto">
universe@390 2437 <table class="memname">
universe@390 2438 <tr>
universe@390 2439 <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> sstrsubsl </td>
universe@390 2440 <td>(</td>
universe@390 2441 <td class="paramtype"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td>
universe@390 2442 <td class="paramname"><em>string</em>, </td>
universe@390 2443 </tr>
universe@390 2444 <tr>
universe@390 2445 <td class="paramkey"></td>
universe@390 2446 <td></td>
universe@390 2447 <td class="paramtype">size_t&#160;</td>
universe@390 2448 <td class="paramname"><em>start</em>, </td>
universe@390 2449 </tr>
universe@390 2450 <tr>
universe@390 2451 <td class="paramkey"></td>
universe@390 2452 <td></td>
universe@390 2453 <td class="paramtype">size_t&#160;</td>
universe@390 2454 <td class="paramname"><em>length</em>&#160;</td>
universe@390 2455 </tr>
universe@390 2456 <tr>
universe@390 2457 <td></td>
universe@390 2458 <td>)</td>
universe@390 2459 <td></td><td></td>
universe@390 2460 </tr>
universe@390 2461 </table>
universe@390 2462 </div><div class="memdoc">
universe@390 2463
universe@390 2464 <p>Returns a substring with the given length starting at the specified location. </p>
universe@390 2465 <p><b>Attention:</b> the new string references the same memory area as the input string and is <b>NOT</b> required to be <code>NULL</code>-terminated. Use <a class="el" href="string_8h.html#accbfd2b459a028d7af9fb7df6f977d80" title="Creates a duplicate of the specified string. ">sstrdup()</a> to get a copy.</p>
universe@390 2466 <dl class="params"><dt>Parameters</dt><dd>
universe@390 2467 <table class="params">
universe@390 2468 <tr><td class="paramname">string</td><td>input string </td></tr>
universe@390 2469 <tr><td class="paramname">start</td><td>start location of the substring </td></tr>
universe@390 2470 <tr><td class="paramname">length</td><td>the maximum length of the substring </td></tr>
universe@390 2471 </table>
universe@390 2472 </dd>
universe@390 2473 </dl>
universe@390 2474 <dl class="section return"><dt>Returns</dt><dd>a substring of <code>string</code> starting at <code>start</code> with a maximum length of <code>length</code></dd></dl>
universe@390 2475 <dl class="section see"><dt>See also</dt><dd><a class="el" href="string_8h.html#a5eb9e0e1f26cf7fbecc038cd90e8b258" title="Returns a substring starting at the specified location. ">sstrsubs()</a> </dd>
universe@390 2476 <dd>
universe@390 2477 <a class="el" href="string_8h.html#af80898a0b75955eb2579298c3ae2c481" title="Returns a substring starting at the location of the first occurrence of the specified character...">sstrchr()</a> </dd></dl>
universe@390 2478
universe@390 2479 </div>
universe@390 2480 </div>
universe@390 2481 <a id="ae2d6da564d3fce51f2e0cac580fdbc56"></a>
universe@390 2482 <h2 class="memtitle"><span class="permalink"><a href="#ae2d6da564d3fce51f2e0cac580fdbc56">&#9670;&nbsp;</a></span>sstrtrim()</h2>
universe@390 2483
universe@390 2484 <div class="memitem">
universe@390 2485 <div class="memproto">
universe@390 2486 <table class="memname">
universe@390 2487 <tr>
universe@390 2488 <td class="memname"><a class="el" href="structsstr__t.html">sstr_t</a> sstrtrim </td>
universe@390 2489 <td>(</td>
universe@390 2490 <td class="paramtype"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td>
universe@390 2491 <td class="paramname"><em>string</em></td><td>)</td>
universe@390 2492 <td></td>
universe@390 2493 </tr>
universe@390 2494 </table>
universe@390 2495 </div><div class="memdoc">
universe@390 2496
universe@390 2497 <p>Omits leading and trailing spaces. </p>
universe@390 2498 <p>This function returns a new <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> containing a trimmed version of the specified string.</p>
universe@390 2499 <p><b>Note:</b> the new <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> references the same memory, thus you <b>MUST NOT</b> pass the <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> of the return value to <code>free()</code>. It is also highly recommended to avoid assignments like <code>mystr = sstrtrim(mystr);</code> as you lose the reference to the source string. Assignments of this type are only permitted, if the <a class="el" href="structsstr__t.html#af8049914efc1e67f7de3ee55ec0611b0" title="A pointer to the string (not necessarily NULL-terminated) ">sstr_t.ptr</a> of the source string does not need to be freed or if another reference to the source string exists.</p>
universe@390 2500 <dl class="params"><dt>Parameters</dt><dd>
universe@390 2501 <table class="params">
universe@390 2502 <tr><td class="paramname">string</td><td>the string that shall be trimmed </td></tr>
universe@390 2503 </table>
universe@390 2504 </dd>
universe@390 2505 </dl>
universe@390 2506 <dl class="section return"><dt>Returns</dt><dd>a new <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> containing the trimmed string </dd></dl>
universe@390 2507
universe@390 2508 </div>
universe@390 2509 </div>
universe@390 2510 <a id="a69d5e3eeec783cc43314df71248768f5"></a>
universe@390 2511 <h2 class="memtitle"><span class="permalink"><a href="#a69d5e3eeec783cc43314df71248768f5">&#9670;&nbsp;</a></span>ucx_sc2sc()</h2>
universe@390 2512
universe@390 2513 <div class="memitem">
universe@390 2514 <div class="memproto">
universe@390 2515 <table class="memname">
universe@390 2516 <tr>
universe@390 2517 <td class="memname"><a class="el" href="structscstr__t.html">scstr_t</a> ucx_sc2sc </td>
universe@390 2518 <td>(</td>
universe@390 2519 <td class="paramtype"><a class="el" href="structscstr__t.html">scstr_t</a>&#160;</td>
universe@390 2520 <td class="paramname"><em>str</em></td><td>)</td>
universe@390 2521 <td></td>
universe@390 2522 </tr>
universe@390 2523 </table>
universe@390 2524 </div><div class="memdoc">
universe@390 2525
universe@390 2526 <p>One of two type adjustment functions that return an <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a>. </p>
universe@390 2527 <p>Used <b>internally</b> to convert a UCX string to an immutable UCX string. This variant is used, when the string is already immutable and no operation needs to be performed.</p>
universe@390 2528 <p><b>Do not use this function manually.</b></p>
universe@390 2529 <dl class="params"><dt>Parameters</dt><dd>
universe@390 2530 <table class="params">
universe@390 2531 <tr><td class="paramname">str</td><td>some <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a> </td></tr>
universe@390 2532 </table>
universe@390 2533 </dd>
universe@390 2534 </dl>
universe@390 2535 <dl class="section return"><dt>Returns</dt><dd>the argument itself </dd></dl>
universe@390 2536
universe@390 2537 </div>
universe@390 2538 </div>
universe@390 2539 <a id="aedeb5d7bddda54116101a8d68af8c56d"></a>
universe@390 2540 <h2 class="memtitle"><span class="permalink"><a href="#aedeb5d7bddda54116101a8d68af8c56d">&#9670;&nbsp;</a></span>ucx_ss2c_s()</h2>
universe@390 2541
universe@390 2542 <div class="memitem">
universe@390 2543 <div class="memproto">
universe@390 2544 <table class="memname">
universe@390 2545 <tr>
universe@390 2546 <td class="memname"><a class="el" href="structscstr__t.html">scstr_t</a> ucx_ss2c_s </td>
universe@390 2547 <td>(</td>
universe@390 2548 <td class="paramname"></td><td>)</td>
universe@390 2549 <td></td>
universe@390 2550 </tr>
universe@390 2551 </table>
universe@390 2552 </div><div class="memdoc">
universe@390 2553
universe@390 2554 <p>Converts a UCX string to an immutable UCX string (<a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a>). </p>
universe@390 2555 <p>This <b>internal</b> function (ab)uses the C standard an expects one single argument which is then implicitly converted to <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a> without a warning.</p>
universe@390 2556 <p><b>Do not use this function manually.</b></p>
universe@390 2557 <dl class="section return"><dt>Returns</dt><dd>the an immutable version of the provided string </dd></dl>
universe@390 2558
universe@390 2559 </div>
universe@390 2560 </div>
universe@390 2561 <a id="a9ce5ad1b2aa2dbeba204d452c2e64359"></a>
universe@390 2562 <h2 class="memtitle"><span class="permalink"><a href="#a9ce5ad1b2aa2dbeba204d452c2e64359">&#9670;&nbsp;</a></span>ucx_ss2sc()</h2>
universe@390 2563
universe@390 2564 <div class="memitem">
universe@390 2565 <div class="memproto">
universe@390 2566 <table class="memname">
universe@390 2567 <tr>
universe@390 2568 <td class="memname"><a class="el" href="structscstr__t.html">scstr_t</a> ucx_ss2sc </td>
universe@390 2569 <td>(</td>
universe@390 2570 <td class="paramtype"><a class="el" href="structsstr__t.html">sstr_t</a>&#160;</td>
universe@390 2571 <td class="paramname"><em>str</em></td><td>)</td>
universe@390 2572 <td></td>
universe@390 2573 </tr>
universe@390 2574 </table>
universe@390 2575 </div><div class="memdoc">
universe@390 2576
universe@390 2577 <p>One of two type adjustment functions that return an <a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a>. </p>
universe@390 2578 <p>Used <b>internally</b> to convert a UCX string to an immutable UCX string.</p>
universe@390 2579 <p><b>Do not use this function manually.</b></p>
universe@390 2580 <dl class="params"><dt>Parameters</dt><dd>
universe@390 2581 <table class="params">
universe@390 2582 <tr><td class="paramname">str</td><td>some <a class="el" href="structsstr__t.html" title="The UCX string structure. ">sstr_t</a> </td></tr>
universe@390 2583 </table>
universe@390 2584 </dd>
universe@390 2585 </dl>
universe@390 2586 <dl class="section return"><dt>Returns</dt><dd>an immutable (<a class="el" href="structscstr__t.html" title="The UCX string structure for immutable (constant) strings. ">scstr_t</a>) version of the provided string. </dd></dl>
universe@390 2587
universe@390 2588 </div>
universe@390 2589 </div>
universe@390 2590 </div><!-- contents -->
universe@390 2591 <!-- start footer part -->
universe@390 2592 <hr class="footer"/><address class="footer"><small>
universe@390 2593 Generated on Thu Dec 19 2019 19:58:24 for ucx by &#160;<a href="http://www.doxygen.org/index.html">
universe@390 2594 <img class="footer" src="doxygen.png" alt="doxygen"/>
universe@390 2595 </a> 1.8.13
universe@390 2596 </small></address>
universe@390 2597 </body>
universe@390 2598 </html>

mercurial