A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FString%2Fstring_substr</id>
		<title>C++/String/string substr - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FString%2Fstring_substr"/>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B/String/string_substr&amp;action=history"/>
		<updated>2026-04-10T06:28:26Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://cppe.ru/index.php?title=C%2B%2B/String/string_substr&amp;diff=1404&amp;oldid=prev</id>
		<title> в 14:21, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B/String/string_substr&amp;diff=1404&amp;oldid=prev"/>
				<updated>2010-05-25T14:21:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 14:21, 25 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://cppe.ru/index.php?title=C%2B%2B/String/string_substr&amp;diff=1405&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://cppe.ru/index.php?title=C%2B%2B/String/string_substr&amp;diff=1405&amp;oldid=prev"/>
				<updated>2010-05-25T10:25:46Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия: Импорт контента...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Find substring day in a string and check if it was found==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
int main ()&lt;br /&gt;
{&lt;br /&gt;
    using namespace std;&lt;br /&gt;
    string strSample (&amp;quot;this is a test&amp;quot;);&lt;br /&gt;
    size_t nOffset = strSample.find (&amp;quot;test&amp;quot;, 0);&lt;br /&gt;
    // Check if the substring was found...&lt;br /&gt;
    if (nOffset != string::npos)&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;found:&amp;quot; &amp;lt;&amp;lt; nOffset;&lt;br /&gt;
    else&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;not found.&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Obtain a substring==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  string str1(&amp;quot;this is a test&amp;quot;);&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;  str1: &amp;quot; &amp;lt;&amp;lt; str1 &amp;lt;&amp;lt; endl;&lt;br /&gt;
  // Obtain a substring.&lt;br /&gt;
  str1 = str1.substr(5, 4);&lt;br /&gt;
  cout &amp;lt;&amp;lt; str1 &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Split file name in command line into base name and extension==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
 &lt;br /&gt;
/* The following code example is taken from the book&lt;br /&gt;
 * &amp;quot;The C++ Standard Library - A Tutorial and Reference&amp;quot;&lt;br /&gt;
 * by Nicolai M. Josuttis, Addison-Wesley, 1999&lt;br /&gt;
 *&lt;br /&gt;
 * (C) Copyright Nicolai M. Josuttis 1999.&lt;br /&gt;
 * Permission to copy, use, modify, sell and distribute this software&lt;br /&gt;
 * is granted provided this copyright notice appears in all copies.&lt;br /&gt;
 * This software is provided &amp;quot;as is&amp;quot; without express or implied&lt;br /&gt;
 * warranty, and with no claim as to its suitability for any purpose.&lt;br /&gt;
 */&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main (int argc, char* argv[])&lt;br /&gt;
{&lt;br /&gt;
    string filename, basename, extname, tmpname;&lt;br /&gt;
    const string suffix(&amp;quot;tmp&amp;quot;);&lt;br /&gt;
    /* for each command-line argument&lt;br /&gt;
     * (which is an ordinary C-string)&lt;br /&gt;
     */&lt;br /&gt;
    for (int i=1; i&amp;lt;argc; ++i) {&lt;br /&gt;
        // process argument as file name&lt;br /&gt;
        filename = argv[i];&lt;br /&gt;
        &lt;br /&gt;
        // search period in file name&lt;br /&gt;
        string::size_type idx = filename.find(&amp;quot;.&amp;quot;);&lt;br /&gt;
        if (idx == string::npos) {&lt;br /&gt;
            // file name does not contain any period&lt;br /&gt;
            tmpname = filename + &amp;quot;.&amp;quot; + suffix;&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
            /* split file name into base name and extension&lt;br /&gt;
             * - base name contains all characters before the period&lt;br /&gt;
             * - extension contains all characters after the period&lt;br /&gt;
             */&lt;br /&gt;
            basename = filename.substr(0, idx);&lt;br /&gt;
            extname = filename.substr(idx+1);&lt;br /&gt;
            if (extname.empty()) {&lt;br /&gt;
                // contains period but no extension: append tmp&lt;br /&gt;
                tmpname = filename;&lt;br /&gt;
                tmpname += suffix;&lt;br /&gt;
            }&lt;br /&gt;
            else if (extname == suffix) {&lt;br /&gt;
                // replace extension tmp with xxx&lt;br /&gt;
                tmpname = filename;&lt;br /&gt;
                tmpname.replace (idx+1, extname.size(), &amp;quot;xxx&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else {&lt;br /&gt;
                // replace any extension with tmp&lt;br /&gt;
                tmpname = filename;&lt;br /&gt;
                tmpname.replace (idx+1, string::npos, suffix);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        // print file name and temporary name&lt;br /&gt;
        cout &amp;lt;&amp;lt; filename &amp;lt;&amp;lt; &amp;quot; =&amp;gt; &amp;quot; &amp;lt;&amp;lt; tmpname &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
        &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==string member function substr==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
 &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using std::cout;&lt;br /&gt;
using std::endl;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
using std::string;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
   string s1( &amp;quot;AA1234567890asdfasdf&amp;quot; );&lt;br /&gt;
   string s2( &amp;quot; AAB&amp;quot; );&lt;br /&gt;
   string s3;&lt;br /&gt;
   // test string member function substr&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;The substring of s1 starting at location 0 for\n&amp;quot;&lt;br /&gt;
      &amp;lt;&amp;lt; &amp;quot;14 characters, s1.substr(0, 14), is:\n&amp;quot;&lt;br /&gt;
      &amp;lt;&amp;lt; s1.substr( 0, 14 ) &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
   return 0;&lt;br /&gt;
}&lt;br /&gt;
/* &lt;br /&gt;
The substring of s1 starting at location 0 for&lt;br /&gt;
14 characters, s1.substr(0, 14), is:&lt;br /&gt;
AA1234567890as&lt;br /&gt;
&lt;br /&gt;
 */        &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==substr &amp;quot;to-end-of-string&amp;quot; option==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
 &lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using std::cout;&lt;br /&gt;
using std::endl;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
using std::string;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
   string s1( &amp;quot;AA1234567890asdfasdf&amp;quot; );&lt;br /&gt;
   string s2( &amp;quot; AAB&amp;quot; );&lt;br /&gt;
   string s3;&lt;br /&gt;
   // test substr &amp;quot;to-end-of-string&amp;quot; option&lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;The substring of s1 starting at\n&amp;quot;&lt;br /&gt;
      &amp;lt;&amp;lt; &amp;quot;location 5, s1.substr(5), is:\n&amp;quot;&lt;br /&gt;
      &amp;lt;&amp;lt; s1.substr( 5 ) &amp;lt;&amp;lt; endl; &lt;br /&gt;
   return 0;&lt;br /&gt;
}&lt;br /&gt;
/* &lt;br /&gt;
The substring of s1 starting at&lt;br /&gt;
location 5, s1.substr(5), is:&lt;br /&gt;
4567890asdfasdf&lt;br /&gt;
 */        &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>