<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>oscl_string_utils.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.18 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>oscl_string_utils.h File Reference</h1>Utilities to parse and convert strings. 
<a href="#_details">More...</a>
<p>
<code>#include "<a class="el" href="oscl__base_8h-source.html">oscl_base.h</a>"</code><br>

<p>
<a href="oscl__string__utils_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="group__osclutil.html#a46">oscl_isdigit</a>(c)&nbsp;&nbsp;&nbsp;((c) &gt;= '0' &amp;&amp; (c) &lt;= '9')</td></tr>
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF const char *&nbsp;</td><td valign=bottom><a class="el" href="group__osclutil.html#a9">skip_whitespace</a> (const char *ptr)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF char *&nbsp;</td><td valign=bottom><a class="el" href="group__osclutil.html#a10">skip_whitespace</a> (char *ptr)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF const char *&nbsp;</td><td valign=bottom><a class="el" href="group__osclutil.html#a11">skip_whitespace</a> (const char *start, const char *end)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF const char *&nbsp;</td><td valign=bottom><a class="el" href="group__osclutil.html#a12">skip_to_whitespace</a> (const char *start, const char *end)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF const char *&nbsp;</td><td valign=bottom><a class="el" href="group__osclutil.html#a13">skip_to_line_term</a> (const char *start_ptr, const char *end_ptr)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF const char *&nbsp;</td><td valign=bottom><a class="el" href="group__osclutil.html#a14">skip_whitespace_and_line_term</a> (const char *start, const char *end)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF int&nbsp;</td><td valign=bottom><a class="el" href="group__osclutil.html#a15">extract_string</a> (const char *in_ptr, char *outstring, int maxsize)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF int&nbsp;</td><td valign=bottom><a class="el" href="group__osclutil.html#a16">extract_string</a> (const char *start, const char *end, char *outstring, int maxsize)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF bool&nbsp;</td><td valign=bottom><a class="el" href="group__osclutil.html#a17">PV_atoi</a> (const char *buf, const char new_format, uint32 &amp;value)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF bool&nbsp;</td><td valign=bottom><a class="el" href="group__osclutil.html#a18">PV_atoi</a> (const char *buf, const char new_format, int length, uint32 &amp;value)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF bool&nbsp;</td><td valign=bottom><a class="el" href="group__osclutil.html#a19">PV_atoi</a> (const char *buf, const char new_format, int length, <a class="el" href="group__osclbase.html#a31">uint64</a> &amp;value)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF bool&nbsp;</td><td valign=bottom><a class="el" href="group__osclutil.html#a20">PV_atof</a> (const char *buf, <a class="el" href="group__osclbase.html#a29">OsclFloat</a> &amp;value)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF bool&nbsp;</td><td valign=bottom><a class="el" href="group__osclutil.html#a21">PV_atof</a> (const char *buf, int length, <a class="el" href="group__osclbase.html#a29">OsclFloat</a> &amp;value)</td></tr>
<tr><td nowrap align=right valign=top>OSCL_IMPORT_REF int&nbsp;</td><td valign=bottom><a class="el" href="group__osclutil.html#a22">oscl_abs</a> (int aVal)</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Utilities to parse and convert strings.
<p>

<p>
<hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small>
<address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small>
</small></address>
</body>
</html>
