<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2329258495835700235</id><updated>2011-07-17T18:53:54.162-07:00</updated><category term='string operations'/><category term='linux'/><category term='glob sample'/><category term='C program'/><category term='process'/><category term='unix'/><category term='C++ program'/><category term='glob example'/><category term='character arrays'/><category term='MAC address'/><category term='C glob example'/><category term='glob tutorial'/><category term='priority'/><category term='network address'/><category term='strings'/><category term='C++ program hardware address'/><category term='increasing priority'/><category term='C++ glob example'/><title type='text'>Danny's Tech Musings</title><subtitle type='html'>Technical Recollections</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dannys-tech-musings.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dannys-tech-musings.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Vijay Daniel</name><uri>http://www.blogger.com/profile/05707763708546239070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2329258495835700235.post-4028736489470273601</id><published>2008-06-29T13:41:00.001-07:00</published><updated>2008-06-29T13:41:56.512-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='string operations'/><category scheme='http://www.blogger.com/atom/ns#' term='C++ program'/><category scheme='http://www.blogger.com/atom/ns#' term='strings'/><category scheme='http://www.blogger.com/atom/ns#' term='C program'/><category scheme='http://www.blogger.com/atom/ns#' term='character arrays'/><title type='text'>String Operations - VI</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cctype&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;string&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstring&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;vector&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstdio&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstdlib&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Erase the first occurence of the character in the given string&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;std::string erase( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *s, &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; c )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   std::string erased;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( ; *s &amp;amp;&amp;amp; *s != c; ++s )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      erased.push_back( *s );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( (*s ? ++s: s); *s; ++s )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      erased.push_back( *s );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; erased;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Erase the first occurrence of s2 in s&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;std::string erase( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *s, &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *s2 )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   std::string erased;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *skip = NULL;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; s2Len = strlen(s2);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( (skip = strstr( s, s2 )) )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( ;s != skip; ++s )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         erased.push_back( *s );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      s += s2Len;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( ; *s; ++s )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      erased.push_back( *s );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; erased;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Replace the first occurrence of olds with news in s&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;std::string replace( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *s, &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *olds, &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *news )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   std::string replaced;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *skip = NULL;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *newsi = NULL;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; oldsLen = strlen(olds);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( (skip = strstr( s, olds )) )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( ;s != skip; ++s )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         replaced.push_back( *s );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( newsi = news; *newsi; ++newsi )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         replaced.push_back( *newsi );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;               &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      s += oldsLen;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( ; *s; ++s )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      replaced.push_back( *s );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; replaced;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Erase all occurrences of the character in the given string&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;std::string eraseAll( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *s, &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; c )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   std::string erased;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( ; *s; ++s )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( *s != c )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         erased.push_back( *s );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; erased;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Erase all occurrences of s2 in s&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;std::string eraseAll( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *s, &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *s2 )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   std::string erased;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *skip = NULL;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; s2Len = strlen(s2);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;while&lt;/span&gt;&lt;span style="color: #000000;"&gt;( *s )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( (skip = strstr( s, s2 )) )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( ;s != skip; ++s )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;            erased.push_back( *s );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         s += s2Len;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( ; *s; ++s )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;            erased.push_back( *s );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; erased;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Replace all occurrencs of olds with news in s&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;std::string replaceAll( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *s, &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *olds, &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *news )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   std::string replaced;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *skip = NULL;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; *newsi = NULL;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; oldsLen = strlen(olds);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;while&lt;/span&gt;&lt;span style="color: #000000;"&gt;( *s )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( (skip = strstr( s, olds )) )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( ;s != skip; ++s )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;            replaced.push_back( *s );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( newsi = news; *newsi; ++newsi )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;            replaced.push_back( *newsi );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         s += oldsLen;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( ; *s; ++s )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;            replaced.push_back( *s );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; replaced;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2329258495835700235-4028736489470273601?l=dannys-tech-musings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dannys-tech-musings.blogspot.com/feeds/4028736489470273601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2329258495835700235&amp;postID=4028736489470273601' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default/4028736489470273601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default/4028736489470273601'/><link rel='alternate' type='text/html' href='http://dannys-tech-musings.blogspot.com/2008/06/string-operations-vi.html' title='String Operations - VI'/><author><name>Vijay Daniel</name><uri>http://www.blogger.com/profile/05707763708546239070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2329258495835700235.post-465097006854603415</id><published>2008-06-29T13:31:00.000-07:00</published><updated>2008-06-29T13:36:58.017-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='string operations'/><category scheme='http://www.blogger.com/atom/ns#' term='C++ program'/><category scheme='http://www.blogger.com/atom/ns#' term='strings'/><category scheme='http://www.blogger.com/atom/ns#' term='C program'/><category scheme='http://www.blogger.com/atom/ns#' term='character arrays'/><title type='text'>String Operations - V</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cctype&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;string&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstring&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;vector&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstdio&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstdlib&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Remove leading white space&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;std::string leftTrim( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;s )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   std::string trimmed;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   size_t i;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( i = &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &amp;lt; s.length() &amp;amp;&amp;amp; isblank(s[i]); ++i );  &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Skip white space&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( ; i &amp;lt; s.length(); ++i )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      trimmed.push_back( s[i] );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; trimmed;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Remove trailing white space&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;std::string rightTrim( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;s )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   std::string trimmed;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   size_t length = s.length(),&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;              i,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;              j;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( i = length-&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &amp;gt;= &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt; &amp;amp;&amp;amp; isblank(s[i]); --i );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( j = &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; j &amp;lt;= i; ++j )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      trimmed.push_back( s[j] );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; trimmed;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Remove leading and trailing white space&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;std::string trim( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;s )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   std::string trimmed;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   size_t length = s.length(),&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;              i,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;              j,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;              k;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( i = &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &amp;lt; length &amp;amp;&amp;amp; isblank(s[i]); ++i );  &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Left trim&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( k = length-&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;; k &amp;gt;= &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt; &amp;amp;&amp;amp; isblank(s[k]); --k );   &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Right trim&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( j = i; j &amp;lt;= k; ++j )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      trimmed.push_back( s[j] );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; trimmed;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2329258495835700235-465097006854603415?l=dannys-tech-musings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dannys-tech-musings.blogspot.com/feeds/465097006854603415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2329258495835700235&amp;postID=465097006854603415' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default/465097006854603415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default/465097006854603415'/><link rel='alternate' type='text/html' href='http://dannys-tech-musings.blogspot.com/2008/06/string-operations-v.html' title='String Operations - V'/><author><name>Vijay Daniel</name><uri>http://www.blogger.com/profile/05707763708546239070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2329258495835700235.post-94447273687352155</id><published>2008-06-29T13:29:00.000-07:00</published><updated>2008-06-29T13:30:52.535-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='string operations'/><category scheme='http://www.blogger.com/atom/ns#' term='C++ program'/><category scheme='http://www.blogger.com/atom/ns#' term='strings'/><category scheme='http://www.blogger.com/atom/ns#' term='C program'/><category scheme='http://www.blogger.com/atom/ns#' term='character arrays'/><title type='text'>String Operations - IV</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cctype&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;string&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstring&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;vector&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstdio&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstdlib&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;std::string toString( &lt;/span&gt;&lt;span style="color: #800000;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt; value )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; value?&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"true"&lt;/span&gt;&lt;span style="color: #000000;"&gt;:&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"false"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;std::string toString( &lt;/span&gt;&lt;span style="color: #800000;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; value )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; buffer[ &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;256&lt;/span&gt;&lt;span style="color: #000000;"&gt; ];&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   sprintf( buffer, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"%d"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, value );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; buffer;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;std::string toString( &lt;/span&gt;&lt;span style="color: #800000;"&gt;double&lt;/span&gt;&lt;span style="color: #000000;"&gt; value )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; buffer[ &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;256&lt;/span&gt;&lt;span style="color: #000000;"&gt; ];&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   sprintf( buffer, &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"%lf"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, value );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; buffer;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;std::string toString( &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; value )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; buffer[ &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt; ];&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   buffer[&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;] = value;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   buffer[&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;] = &lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;'\0'&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; buffer;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2329258495835700235-94447273687352155?l=dannys-tech-musings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dannys-tech-musings.blogspot.com/feeds/94447273687352155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2329258495835700235&amp;postID=94447273687352155' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default/94447273687352155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default/94447273687352155'/><link rel='alternate' type='text/html' href='http://dannys-tech-musings.blogspot.com/2008/06/string-operations-iv.html' title='String Operations - IV'/><author><name>Vijay Daniel</name><uri>http://www.blogger.com/profile/05707763708546239070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2329258495835700235.post-1549940903401081196</id><published>2008-06-29T13:26:00.000-07:00</published><updated>2008-06-29T13:29:39.844-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='string operations'/><category scheme='http://www.blogger.com/atom/ns#' term='C++ program'/><category scheme='http://www.blogger.com/atom/ns#' term='strings'/><category scheme='http://www.blogger.com/atom/ns#' term='C program'/><category scheme='http://www.blogger.com/atom/ns#' term='character arrays'/><title type='text'>String Operations III</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cctype&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;string&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstring&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;vector&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstdio&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstdlib&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800000;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; readInt( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;s )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; value;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   std::sscanf( s.c_str(), &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"%d"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &amp;amp;value );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; value;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800000;"&gt;double&lt;/span&gt;&lt;span style="color: #000000;"&gt; readDouble( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;s )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;double&lt;/span&gt;&lt;span style="color: #000000;"&gt; value;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   std::sscanf( s.c_str(), &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"%lf"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &amp;amp;value );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; value;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; readChar( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;s )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; value;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   std::sscanf( s.c_str(), &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"%c"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &amp;amp;value );&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; value;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800000;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt; readBool( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;s )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt; value;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; s == &lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"true"&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2329258495835700235-1549940903401081196?l=dannys-tech-musings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dannys-tech-musings.blogspot.com/feeds/1549940903401081196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2329258495835700235&amp;postID=1549940903401081196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default/1549940903401081196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default/1549940903401081196'/><link rel='alternate' type='text/html' href='http://dannys-tech-musings.blogspot.com/2008/06/string-operations-iii.html' title='String Operations III'/><author><name>Vijay Daniel</name><uri>http://www.blogger.com/profile/05707763708546239070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2329258495835700235.post-9038377426961988595</id><published>2008-06-29T13:23:00.000-07:00</published><updated>2008-06-29T13:26:30.429-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='string operations'/><category scheme='http://www.blogger.com/atom/ns#' term='C++ program'/><category scheme='http://www.blogger.com/atom/ns#' term='strings'/><category scheme='http://www.blogger.com/atom/ns#' term='C program'/><category scheme='http://www.blogger.com/atom/ns#' term='character arrays'/><title type='text'>String Operations II</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cctype&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;string&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstring&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;vector&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstdio&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstdlib&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Returns whether the given string starts with the specified string&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800000;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt; startsWith( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;s, &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;start )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   size_t sSize = s.length(),&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;           startSize = start.length();                      &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt; starts = sSize &amp;gt;= startSize;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( starts )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( size_t i = &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &amp;lt; startSize; ++i )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( start[i] != s[i] )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;            starts = &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; starts;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Returns whether the given string ends with the specified string&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800000;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt; endsWith( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;s, &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;end )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   size_t sSize = s.length(),&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;           endSize = end.length();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt; ends = sSize &amp;gt;= endSize;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( ends )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( size_t i = endSize-&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &amp;gt;= &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; --i )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( end[i] != s[i] )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;            ends = &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; ends;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Returns whether the given string starts with the specified string&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//(Ignores case)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800000;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt; istartsWith( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;s, &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;start )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   size_t sSize = s.length(),&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;           startSize = start.length();                      &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt; starts = sSize &amp;gt;= startSize;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( starts )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( size_t i = &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &amp;lt; startSize; ++i )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( tolower(start[i]) != tolower(s[i]) )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;            starts = &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; starts;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Returns whether the given string starts with the specified string&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//(Ignores case)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800000;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt; iendsWith( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;s, &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;end )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   size_t sSize = s.length(),&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;           endSize = end.length();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt; ends = sSize &amp;gt;= endSize;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( ends )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( size_t i = endSize-&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &amp;gt;= &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; --i )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( tolower(end[i]) != tolower(s[i]) )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;            ends = &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;break&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; ends;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2329258495835700235-9038377426961988595?l=dannys-tech-musings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dannys-tech-musings.blogspot.com/feeds/9038377426961988595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2329258495835700235&amp;postID=9038377426961988595' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default/9038377426961988595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default/9038377426961988595'/><link rel='alternate' type='text/html' href='http://dannys-tech-musings.blogspot.com/2008/06/string-operations-ii.html' title='String Operations II'/><author><name>Vijay Daniel</name><uri>http://www.blogger.com/profile/05707763708546239070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2329258495835700235.post-7795164173402491210</id><published>2008-06-29T13:14:00.000-07:00</published><updated>2008-06-29T13:26:15.480-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='string operations'/><category scheme='http://www.blogger.com/atom/ns#' term='C++ program'/><category scheme='http://www.blogger.com/atom/ns#' term='strings'/><category scheme='http://www.blogger.com/atom/ns#' term='C program'/><category scheme='http://www.blogger.com/atom/ns#' term='character arrays'/><title type='text'>String Operations - I</title><content type='html'>&lt;p&gt;A few string operations that are present in other languages but not in C or C++ :-)&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cctype&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;string&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstring&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;vector&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;iostream&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstdio&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstdlib&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Return a lower case version of the given string&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;std::string toLowerCase( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;s )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   std::string lower;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( size_t i = &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &amp;lt; s.length(); ++i )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      lower.push_back( std::tolower(s[i]) );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; lower;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Return an upper case version of the given string&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;std::string toUpperCase( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;s )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   std::string upper;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( size_t i = &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &amp;lt; s.length(); ++i )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      upper.push_back( std::toupper(s[i]) );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; upper;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Return the number of occurrences of the given character in the string&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800000;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; countOf( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;s, &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; c )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   size_t count = &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   sSize = s.length();&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( size_t i = &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &amp;lt; sSize; ++i )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( s[i] == c )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         ++count;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Return the number of occurrences of the given string in the main string&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800000;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; countOf( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;s, &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;substr )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="color: #800000;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; count = &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   size_t i = &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;                             &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;while&lt;/span&gt;&lt;span style="color: #000000;"&gt;( (i=s.find(substr,i)) != std::string::npos )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      ++count;       &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; count;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Return the number of occurrences of the given character in the string&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//(Ignores case)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #800000;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; icountOf( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;s, &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; c )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   std::string is = toLowerCase( s );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; countOf( s, std::tolower(c) );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Return the number of occurrences of the given string in the main string&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//(Ignores case)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800000;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; icountOf( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;s, &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; std::string &amp;amp;substr )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   std::string is = toLowerCase( s ),&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   isubstr = toLowerCase( substr );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;               &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; countOf( is, isubstr );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2329258495835700235-7795164173402491210?l=dannys-tech-musings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dannys-tech-musings.blogspot.com/feeds/7795164173402491210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2329258495835700235&amp;postID=7795164173402491210' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default/7795164173402491210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default/7795164173402491210'/><link rel='alternate' type='text/html' href='http://dannys-tech-musings.blogspot.com/2008/06/string-operations-i.html' title='String Operations - I'/><author><name>Vijay Daniel</name><uri>http://www.blogger.com/profile/05707763708546239070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2329258495835700235.post-3512089386040036725</id><published>2008-06-29T12:51:00.000-07:00</published><updated>2008-06-29T13:06:47.829-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='process'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='priority'/><category scheme='http://www.blogger.com/atom/ns#' term='C++ program'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='increasing priority'/><category scheme='http://www.blogger.com/atom/ns#' term='C program'/><title type='text'>Boosting Priority Of A Process</title><content type='html'>&lt;p&gt;Sometimes it is necessary to increase the priority of a particular process in order to get better response or performance. This can be done using the command line using the "nice" command. To do the same thing and also control how a process its scheduled and its priority, the following program may be used. You need to have root access to perform these operations.&lt;br /&gt;&lt;br /&gt;You can get the system values for the minimum and maximum priorities using the following functions:&lt;br /&gt;&lt;br /&gt;int sched_get_priority_min( int ALGORITHM );&lt;br /&gt;int sched_get_priority_max( int ALGORITHM );&lt;br /&gt;&lt;br /&gt;ALGORITHM may be&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;SCHED_RR (Round Robin)&lt;/li&gt;&lt;li&gt; SCHED_FIFO(First In, First Out Queue Type Algorithm where the process is pre-empted only during an I/O operation)&lt;/li&gt;&lt;li&gt;SCHED_OTHER(Default Linux Scheduling Algorithm)&lt;/li&gt;&lt;li&gt; SCHED_BATCH(Batch scheduling)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;#include &amp;lt;sched.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;bool&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; boostPriority( &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;int&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; pid, &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;int&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; priority )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;span style="color: rgb(128, 0, 0);"&gt;bool&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; boosted = &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;true&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;//Declare structure for storing scheduling information&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   sched_param p;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;//Get the current scheduling information&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;//A value of 0 denotes the current process&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;//Otherwise, the process with the given pid is denoted&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   sched_getparam( pid, &amp;amp;p );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;//This is the parameter we are interested in for changing the priority&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;//It is always best to get the current scheduling parameters, change&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;//the value of sched_priority and use the same sstructure to set&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;//the new priority&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   p.sched_priority = priority;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(128, 128, 128);"&gt;//Set the priority. Returns non-zero value if error occurs&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;( sched_setparam( pid, &amp;amp;p) )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      boosted = &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;return&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; boosted;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2329258495835700235-3512089386040036725?l=dannys-tech-musings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dannys-tech-musings.blogspot.com/feeds/3512089386040036725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2329258495835700235&amp;postID=3512089386040036725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default/3512089386040036725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default/3512089386040036725'/><link rel='alternate' type='text/html' href='http://dannys-tech-musings.blogspot.com/2008/06/boosting-priority-of-process.html' title='Boosting Priority Of A Process'/><author><name>Vijay Daniel</name><uri>http://www.blogger.com/profile/05707763708546239070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2329258495835700235.post-8068804800582050921</id><published>2008-06-29T12:29:00.000-07:00</published><updated>2008-06-29T12:44:33.447-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='glob tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='C++ glob example'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='C++ program'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='glob sample'/><category scheme='http://www.blogger.com/atom/ns#' term='C program'/><category scheme='http://www.blogger.com/atom/ns#' term='glob example'/><category scheme='http://www.blogger.com/atom/ns#' term='C glob example'/><title type='text'>glob Example</title><content type='html'>&lt;p&gt;glob is a wonderful utility which retrieves the list of files from a specified location and returns the files which match the given regular expression.&lt;br /&gt;&lt;br /&gt;The glob_t structure is used to store the result of the globbing operation. The globfree function is used to free the memory allocated for the structure after globbing.&lt;br /&gt;&lt;br /&gt;The number of matches is stored in gl_pathc (Glob Path Count) field of glob_t.&lt;br /&gt;Each match is stored in gl_pathv (Glob Path Value) field of glob_t.&lt;br /&gt;&lt;br /&gt;I think its better to check if gl_pathc is greater than zero before invoking globfree, as otherwise it caused a segmentation fault on my system.&lt;br /&gt;&lt;br /&gt;Type "man glob" at the console without the quotes to get a lot of detailed information.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;glob.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;string&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;vector&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;namespace&lt;/span&gt;&lt;span style="color: #000000;"&gt; std;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800000;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; getFiles( &lt;/span&gt;&lt;span style="color: #800000;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; string &amp;amp;pattern, vector&amp;lt;string&amp;gt; &amp;amp;fileList )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Declare glob_t for storing the results of globbing&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  glob_t globbuf;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Glob.. GLOB_TILDE tells the globber to expand "~" in the pattern to the home directory&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  glob( pattern.c_str(), GLOB_TILDE, NULL, &amp;amp;globbuf);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;for&lt;/span&gt;&lt;span style="color: #000000;"&gt;( &lt;/span&gt;&lt;span style="color: #800000;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; i = &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;; i &amp;lt; globbuf.gl_pathc; ++i )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;     fileList.push_back( globbuf.gl_pathv[i] );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Free the globbuf structure&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;( globbuf.gl_pathc &amp;gt; &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt; )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;    globfree( &amp;amp;globbuf );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2329258495835700235-8068804800582050921?l=dannys-tech-musings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dannys-tech-musings.blogspot.com/feeds/8068804800582050921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2329258495835700235&amp;postID=8068804800582050921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default/8068804800582050921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default/8068804800582050921'/><link rel='alternate' type='text/html' href='http://dannys-tech-musings.blogspot.com/2008/06/glob-example.html' title='glob Example'/><author><name>Vijay Daniel</name><uri>http://www.blogger.com/profile/05707763708546239070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2329258495835700235.post-4209118854315475729</id><published>2008-06-29T09:32:00.000-07:00</published><updated>2008-06-29T12:46:47.918-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MAC address'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='C++ program hardware address'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='network address'/><category scheme='http://www.blogger.com/atom/ns#' term='C program'/><title type='text'>Find MAC/Network Hardware Address On Linux/Unix</title><content type='html'>&lt;p&gt;The following piece of code will help you find the MAC(Media Access Control)/Hardware Address of your network card. An important point is that Linux sometimes sets up virtual addresses and these addresses are retrieved as well. You can also get the names of your network interfaces/cards on your system.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;sys/ioctl.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;net/if.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;sys/types.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;sys/socket.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;netinet/in.h&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000;"&gt;#include &amp;lt;cstdio&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;namespace&lt;/span&gt;&lt;span style="color: #000000;"&gt; std;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #800000;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; getMAC( )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Interface structure to pass commands to ioctl&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;struct&lt;/span&gt;&lt;span style="color: #000000;"&gt; ifreq ifr;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Structure containing the network interface name and index&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;struct&lt;/span&gt;&lt;span style="color: #000000;"&gt; if_nameindex* if_name;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Convenience variable to point to the MAC address&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="color: #800000;"&gt;unsigned&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt;* mac;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//String buffer to store the MAC&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt; actualMac[ &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;50&lt;/span&gt;&lt;span style="color: #000000;"&gt; ];&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="color: #800000;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; sd,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      i = &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  sd = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(sd != -&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Retrieve the available list of network interface cards and their names and indices&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;    if_name = if_nameindex();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Parse the list&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//The ending entry in if_name is terminated by NULL&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;while&lt;/span&gt;&lt;span style="color: #000000;"&gt;( if_name[i].if_name != NULL )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;       &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Copy the interface name to the ioctl request structure&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;       memcpy(&amp;amp;ifr.ifr_name, if_name[i].if_name, IFNAMSIZ);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;       &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;       &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Pass signal to ioctl requesting the hardware address&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;       &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (ioctl(sd, SIOCGIFHWADDR, &amp;amp;ifr) &amp;gt;= &lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;       {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;          &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Assign result in MAC (because "mac" is shorter than "ifr.ifr_hwaddr.sa_data" :-D )&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;          mac = (&lt;/span&gt;&lt;span style="color: #800000;"&gt;unsigned&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800000;"&gt;char&lt;/span&gt;&lt;span style="color: #000000;"&gt;*) &amp;amp;ifr.ifr_hwaddr.sa_data;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;            &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;          &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Store the address as a string in "actualMac"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;          sprintf(actualMac,&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"%02X:%02X:%02X:%02X:%02X:%02X"&lt;/span&gt;&lt;span style="color: #000000;"&gt;,mac[&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;],mac[&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;],mac[&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;],mac[&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;3&lt;/span&gt;&lt;span style="color: #000000;"&gt;],mac[&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;4&lt;/span&gt;&lt;span style="color: #000000;"&gt;],mac[&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;5&lt;/span&gt;&lt;span style="color: #000000;"&gt;]);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;       }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;       &lt;/span&gt;&lt;span style="font-weight: bold;color: #000000;"&gt;else&lt;/span&gt;&lt;span style="color: #000000;"&gt;  &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Error: Unable to retrieve the address&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;          printf(&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"Unable to retrieve MAC address for %s&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;\n&lt;/span&gt;&lt;span style="color: #dd0000;"&gt;"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, if_name[i].if_name );&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;         &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;       ++i;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;      &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="font-style: italic;color: #808080;"&gt;//Free the buffers used by the if_nameindex function &lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;    if_freenameindex(if_name);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2329258495835700235-4209118854315475729?l=dannys-tech-musings.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dannys-tech-musings.blogspot.com/feeds/4209118854315475729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2329258495835700235&amp;postID=4209118854315475729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default/4209118854315475729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2329258495835700235/posts/default/4209118854315475729'/><link rel='alternate' type='text/html' href='http://dannys-tech-musings.blogspot.com/2008/06/finding-mac-address-using-c-on.html' title='Find MAC/Network Hardware Address On Linux/Unix'/><author><name>Vijay Daniel</name><uri>http://www.blogger.com/profile/05707763708546239070</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
