<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[wpc115]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich versuch mich grad an wpc115. Für alle, die den Link nicht haben, <a href="http://www.geocities.com/acmesofties/wpcq.htm" rel="nofollow">hier ist er noch mal</a>. Auf wie viel Tokens kommt ihr? Kann ich meins noch verbessern?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int wpc115(char *master, char *pattern)
{
	int counter=0, i=0;						//  9 -&gt;  9

	while(master[i]!='\0')					//  9 -&gt; 18
	{										//  1 -&gt; 19
		int j=0;							//  5 -&gt; 24
		while(master[i+j]==pattern[j])		// 14 -&gt; 38
		{									//  1 -&gt; 39
			++j;							//  3 -&gt; 42
			if(pattern[j]=='\0')			//  9 -&gt; 51
			{								//  1 -&gt; 52
				++counter;					//  3 -&gt; 55
				break;						//  2 -&gt; 57
			}								//  1 -&gt; 58
			if(master[i+j]=='\0')			// 11 -&gt; 69
				return counter;				//  3 -&gt; 72
		}									//  1 -&gt; 73
		++i+=j;								//  5 -&gt; 78
	}										//  1 -&gt; 79

	return counter;							//  3 -&gt; 82
}

int main()
{
	cout &lt;&lt; wpc115(&quot;Ich bin hmmkljachsödflcfj&quot;, &quot;c&quot;);
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/76371/wpc115</link><generator>RSS for Node</generator><lastBuildDate>Thu, 02 Jul 2026 17:52:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/76371.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 10 Jun 2004 14:17:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 14:23:29 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich versuch mich grad an wpc115. Für alle, die den Link nicht haben, <a href="http://www.geocities.com/acmesofties/wpcq.htm" rel="nofollow">hier ist er noch mal</a>. Auf wie viel Tokens kommt ihr? Kann ich meins noch verbessern?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int wpc115(char *master, char *pattern)
{
	int counter=0, i=0;						//  9 -&gt;  9

	while(master[i]!='\0')					//  9 -&gt; 18
	{										//  1 -&gt; 19
		int j=0;							//  5 -&gt; 24
		while(master[i+j]==pattern[j])		// 14 -&gt; 38
		{									//  1 -&gt; 39
			++j;							//  3 -&gt; 42
			if(pattern[j]=='\0')			//  9 -&gt; 51
			{								//  1 -&gt; 52
				++counter;					//  3 -&gt; 55
				break;						//  2 -&gt; 57
			}								//  1 -&gt; 58
			if(master[i+j]=='\0')			// 11 -&gt; 69
				return counter;				//  3 -&gt; 72
		}									//  1 -&gt; 73
		++i+=j;								//  5 -&gt; 78
	}										//  1 -&gt; 79

	return counter;							//  3 -&gt; 82
}

int main()
{
	cout &lt;&lt; wpc115(&quot;Ich bin hmmkljachsödflcfj&quot;, &quot;c&quot;);
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/537499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537499</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Thu, 10 Jun 2004 14:23:29 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 14:33:18 GMT]]></title><description><![CDATA[<p>das hatten wir doch letzten gerade erst<br />
ich würds so machen</p>
<pre><code class="language-cpp">int wpc115(char* master,char* pattern){ 
int rv=0;
char *q,*r; 
    while(*master++){ 
        for(r=pattern,q=master;*r&amp;&amp;*q;++r,++q) 
            if(*r-*q)break; 
        if(!*r)++rv; 
    } 
return rv; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/537513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537513</guid><dc:creator><![CDATA[Windalf]]></dc:creator><pubDate>Thu, 10 Jun 2004 14:33:18 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 15:07:41 GMT]]></title><description><![CDATA[<p>Windalf schrieb:</p>
<blockquote>
<pre><code class="language-cpp">int wpc115(char* master,char* pattern){ 
int rv=0;
char *q,*r; 
    while(*master++){ 
        for(r=pattern,q=master;*r&amp;&amp;*q;++r,++q) 
            if(*r-*q)break; 
        if(!*r)++rv; 
    } 
return rv; 
}
</code></pre>
</blockquote>
<p>Das ist aber nicht richtig. das while(*master++) bricht dir das genick. denn dann damit übergehst du master[0] bei den vergleichen...</p>
<p>von den anderen kritikpunkten lasse ich mal ab <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>PS: IIRC habe ich 54. in #cpp gibts glaub ich leute mit 48 oder 46</p>
<p>kleiner tipp:<br />
if(master[i+j]=='\0') // 11 -&gt; 69<br />
return counter;<br />
das sind _enorm_ viele token.<br />
if(!master[i+j]) kürzt es schon enorm.<br />
das [i+j] ist auch noch verdammt viel. also nehmen wir laufende zeiger oder versuchen das +j wegzubekommen oder sonstwas...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537536</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 10 Jun 2004 15:07:41 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 15:12:38 GMT]]></title><description><![CDATA[<p>@Shade<br />
jo stimmt hab mir keine mühe gegeben und nur den alten code von dem mystrstr aus dem forum kopiert...<br />
und da kommt auch schon der patch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<pre><code class="language-cpp">int wpc115(char* master,char* pattern){ 
int rv=0;
char *p,*q; 
    for(;*master;++master){ 
        for(p=pattern,q=master;*p&amp;&amp;*q&amp;&amp;*p==*q;++p,++q); 
        if(!*p&amp;&amp;++rv)master=q-1;
    } 
return rv; 
}
</code></pre>
<p>ps mit der whileschleife fand ich den code optisch ansprechender... mal gucken ob mir noch was einfällt um die geschweiften klammern der äusseren forschleife wegzubekommen</p>
<p>ach so kannst du mir mal erklären was eigentlich genau ziel bei der aufgabe ist.. hab ich irgendwie noch nicht ganz gepeilt... Also die funktion müsste jetzt machen was sie soll aber wie genau ist ein token definiert? und von den teilen soll man ja wenige haben oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537538</guid><dc:creator><![CDATA[Windalf]]></dc:creator><pubDate>Thu, 10 Jun 2004 15:12:38 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 15:19:44 GMT]]></title><description><![CDATA[<p>ok die klammer hab ich wegbekommen</p>
<pre><code class="language-cpp">int wpc115(char* master,char* pattern){ 
int rv=0;
char *p,*q; 
for(;*master;!*p&amp;&amp;++rv?master=q:++master) //das dumme dabei ist das man p eigentlich auf was zeigen lassen muss was ungleich 0 ist...
    for(p=pattern,q=master;*p&amp;&amp;*q&amp;&amp;*p==*q;++p,++q); 

return rv; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/537548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537548</guid><dc:creator><![CDATA[Windalf]]></dc:creator><pubDate>Thu, 10 Jun 2004 15:19:44 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 15:19:49 GMT]]></title><description><![CDATA[<p>Windalf schrieb:</p>
<blockquote>
<p>ach so kannst du mir mal erklären was eigentlich genau ziel bei der aufgabe ist..</p>
</blockquote>
<p>strstr zu implementieren. nur statt einem zeiger auf das erste vorkommen, gibst du die anzahl der vorkommen zurück. pattern dürfen sich dabei nicht überschneiden.<br />
dh<br />
&quot;babab&quot; und &quot;bab&quot; liefert 1 und nicht 2</p>
<blockquote>
<p>wie genau ist ein token definiert?</p>
</blockquote>
<p>Ein token ist einfach ein token, wie es C++ definiert.</p>
<p>int aba;<br />
sind 3 token.<br />
int | aba | ;</p>
<p>a++ - 13;<br />
ist<br />
a | ++ | - | 13 | ;</p>
<p>if(ab == cd) { continue; }<br />
if | ( | ab | == | cd | ) | { | continue | ; | }</p>
<p>sowas ist viel besser als ascii zeichen zählen. so kann man nämlich wenigstens ein bisschen lesbarkeit bieten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>btw: kommentare sind gratis. dh sie zählen als 0 token</p>
<blockquote>
<p>und von den teilen soll man ja wenige haben oder?</p>
</blockquote>
<p>exakt. AFAIK gilt es 46Token zu unterbieten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537553</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 10 Jun 2004 15:19:49 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 15:37:04 GMT]]></title><description><![CDATA[<p>hmm ich hoffe das hab ich jetzt gepeilt...<br />
guck mal bitte nach ob ich bei mir diese tokens bei mir richtig zähle<br />
und es dann auch wirklich begriffen habe</p>
<pre><code class="language-cpp">int wpc115(char* master,char* pattern){ 
int rv=0;  //&lt;-5
char *p,*q; //&lt;-5+7
for(;*master;!*p&amp;&amp;++rv?master=q:++master) //&lt;-12+19 
    for(p=pattern,q=master;*p&amp;&amp;*q&amp;&amp;*p==*q;++p,++q); //&lt;-31+29

return rv; &lt;-60+3 =63 das sind ja belastend viele...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/537569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537569</guid><dc:creator><![CDATA[Windalf]]></dc:creator><pubDate>Thu, 10 Jun 2004 15:37:04 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 15:40:44 GMT]]></title><description><![CDATA[<p>In deiner ersten for-Schleife sind 20?!</p>
<p>Tip: Einfach immer alles brav auseinander schreiben:</p>
<pre><code class="language-cpp">for ( ; * master ; ! * p &amp;&amp; ++ rv ? master = q : ++ master )
</code></pre>
<p>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537572</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537572</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Thu, 10 Jun 2004 15:40:44 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 15:58:40 GMT]]></title><description><![CDATA[<p>Hier mein Code.<br />
Wenn ich mich nicht verzählt habe, sind es ebenfalls genau 46 Tokens.</p>
<pre><code class="language-cpp">int wpc115(char* master,
           char* pattern)
{
    char * patternBackup = pattern ; // backup the original pattern pointer

    while ( * master ) // while the end of the master string is not reached ...
    {
        if ( * pattern ++ != * master ++ ) pattern = patternBackup ;    // compare one character. if mismatch, reset the pattern pointer and proceed.
        if ( ! * pattern ) return 1 + wpc115 ( master , patternBackup ) ; // if end of pattern string is reached, we have found one occurrence. recursively search the rest of the master string.
    }

    return 0 ; // no occurrence found!
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/537586</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537586</guid><dc:creator><![CDATA[TomasRiker]]></dc:creator><pubDate>Thu, 10 Jun 2004 15:58:40 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 16:03:15 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/153">@TomasRiker</a>:</p>
<p>Aber was machst du wenn du<br />
&quot;abc&quot; in &quot;ababc&quot; suchst?</p>
<p>ich habe keinen compiler hier, aber das scheint dein code nicht zu decken, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537588</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 10 Jun 2004 16:03:15 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 16:03:27 GMT]]></title><description><![CDATA[<p>Kann pattern &quot;&quot; sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537589</guid><dc:creator><![CDATA[tag]]></dc:creator><pubDate>Thu, 10 Jun 2004 16:03:27 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 17:50:36 GMT]]></title><description><![CDATA[<p>Hmm, hast recht, komischerweise ging es zuvor noch.<br />
Ich habe wohl etwas viel optimiert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Mit Korrektur sind es 6 Tokens mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537591</guid><dc:creator><![CDATA[TomasRiker]]></dc:creator><pubDate>Thu, 10 Jun 2004 17:50:36 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 16:13:33 GMT]]></title><description><![CDATA[<p>hmm also gegen die rekursive lösung scheint kaum eine ankommen drin zu sein... oder hat einer ne iterative lösung mit rund 50 tokens?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537595</guid><dc:creator><![CDATA[Windalf]]></dc:creator><pubDate>Thu, 10 Jun 2004 16:13:33 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 17:32:26 GMT]]></title><description><![CDATA[<p>Windalf schrieb:</p>
<blockquote>
<p>hat einer ne iterative lösung mit rund 50 tokens?</p>
</blockquote>
<p>54</p>
<p>und ne illegale (wegen strstr und strlen) von wesentlich weniger tokens <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1036">@tag</a>:<br />
sicher bin ich mir nicht. aber ich wüsste nicht was ein leerer pattern string bringen sollte. ich nehme deshalb an, dass er nicht leer sein darf. würde nämlich so ziemlich jeden code fehlschlagen lassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537639</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 10 Jun 2004 17:32:26 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 18:28:43 GMT]]></title><description><![CDATA[<p>hmm also alle meine versuche bringen mich nicht wirklich weiter...</p>
<p>bei der von Striker könnte man sowas in der art versuchen was nochmal ein wenig zeichen spart...</p>
<pre><code class="language-cpp">int wpc115(char* master, char* pattern){

    char * patternBackup = pattern; 

    while(* master &amp;&amp; *pattern)
		* pattern ++ != * master ++ &amp;&amp; (pattern = patternBackup) ;    
	return * pattern ? 0 : 1 + wpc115 ( master , patternBackup );   
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/537665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537665</guid><dc:creator><![CDATA[Windalf]]></dc:creator><pubDate>Thu, 10 Jun 2004 18:28:43 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 18:56:42 GMT]]></title><description><![CDATA[<p>Wer ist Striker?<br />
Meine Lösung oben war ja leider fehlerhaft.<br />
Jetzt habe ich eine mit 49.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537672</guid><dc:creator><![CDATA[TomasRiker]]></dc:creator><pubDate>Thu, 10 Jun 2004 18:56:42 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 18:54:12 GMT]]></title><description><![CDATA[<p>Ich habe 47 Tokens.</p>
<p>Aber ist es wirklich Sinn des Wettbewerbs seine Lösung hier zu posten?<br />
Sollte man das nicht besser erst nach Teilnahmeschluss machen?<br />
Nur so ne Idee..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537682</guid><dc:creator><![CDATA[Headhunter]]></dc:creator><pubDate>Thu, 10 Jun 2004 18:54:12 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 19:02:13 GMT]]></title><description><![CDATA[<blockquote>
<p>Wer ist Striker?</p>
</blockquote>
<p>ups sorry, wollte dein nick nicht durch den kakao ziehen, war ein kleines Malheur...<br />
jo hab die ganze zeit versucht was brauchbar iteratives hinzubekommen aber gegen die rekusion hat man in diesem falle einfach keine chance...<br />
hatte mir dann halt nochmal deine Lösung angeguckt und festgestellt das bei dem return noch was zu holen ist und man sich die geschweiften klammern sparen kann...</p>
<blockquote>
<p>Aber ist es wirklich Sinn des Wettbewerbs seine Lösung hier zu posten</p>
</blockquote>
<p>gibts denn was zu gewinnen? glaub eher nicht also was hab ich davon wenn ich die Lösung zurückhalte... Macht doch eher mehr spass mit anderen zusammen die Lösung zu entwickeln...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537687</guid><dc:creator><![CDATA[Windalf]]></dc:creator><pubDate>Thu, 10 Jun 2004 19:02:13 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 19:30:41 GMT]]></title><description><![CDATA[<p>also, wenn ich mich nicht vertan hab, dann bin ich auf 44.<br />
und bei leerem pattern wird 0 zurückgegeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537705</guid><dc:creator><![CDATA[davie]]></dc:creator><pubDate>Thu, 10 Jun 2004 19:30:41 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 19:35:20 GMT]]></title><description><![CDATA[<p>ups, ich meinte 39 <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/537709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537709</guid><dc:creator><![CDATA[davie]]></dc:creator><pubDate>Thu, 10 Jun 2004 19:35:20 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 20:17:02 GMT]]></title><description><![CDATA[<p>Na hoffentlich ist er auch fehlerfrei <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/153">@TomasRiker</a><br />
Dein Code findet &quot;alaal&quot; nicht in &quot;alalaal&quot;</p>
<p>Mein Versuch:</p>
<pre><code class="language-cpp">int wpc115(char *master, char *pattern)
{
	// remember where we started
	char* oldpattern = pattern, *oldmaster = master;
	// now test against the pattern
	// make sure master always points one after the last checked character
	while(*pattern &amp;&amp; *pattern == *master++)
		++pattern;
	// If *pattern is now NUL, we've found our substring.
	return
		// add 1 if we've found our substring
		!*pattern +
		// don't search further if master is empty
		(*master
			// if pattern was found, continue search after the substring
			// else continue one char after the original master string so we don't miss some substrings
			? wpc115(*pattern ? ++oldmaster : master, oldpattern)
			: 0);
}

// a simple test case
#include &lt;cassert&gt;
#define test(a,b,c) assert(wpc115(a, b) == c);
int main(int argc, char* argv[])
{
	test(&quot;babab&quot;, &quot;bab&quot;, 1);
	test(&quot;xbababx&quot;, &quot;bab&quot;, 1);
	test(&quot;babbab&quot;, &quot;bab&quot;, 2);
	test(&quot;ababababa&quot;, &quot;bab&quot;, 2);
	test(&quot;hallo welt&quot;, &quot;l&quot;, 3);
	test(&quot;blablala&quot;, &quot;blal&quot;, 1);
	test(&quot;blablalal&quot;, &quot;blal&quot;, 1);
	test(&quot;alalaal&quot;, &quot;alaal&quot;, 1);
	test(&quot;ababc&quot;, &quot;abc&quot;, 1);
	test(&quot;abc&quot;, &quot;abc&quot;, 1);
	test(&quot;abc&quot;, &quot;acb&quot;, 0);
	test(&quot;a&quot;, &quot;a&quot;, 1);
	test(&quot;a&quot;, &quot;b&quot;, 0);
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/537713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537713</guid><dc:creator><![CDATA[tag]]></dc:creator><pubDate>Thu, 10 Jun 2004 20:17:02 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Thu, 10 Jun 2004 20:36:54 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1036">@tag</a>:<br />
Danke für den Hinweis.<br />
Und danke für Deinen Testcode.<br />
Also, mein neuester Versuch besteht alle Tests... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>PS: Die Strg-Taste hilft in Visual C++ beim Zählen der Tokens!<br />
Einfach gedrückt halten und mit den Cursortasten zwischen den Tokens navigieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537745</guid><dc:creator><![CDATA[TomasRiker]]></dc:creator><pubDate>Thu, 10 Jun 2004 20:36:54 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Fri, 11 Jun 2004 06:47:45 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1036">@tag</a>: du kannst noch zwei klammern weglassen</p>
<p>[Nachtrag]<br />
Meine Loesung hat 50 Tokens. In die Tests die ich gemacht hab, sind alle<br />
erfolgreich durchgelaufen. Aber ob ichs einschicken werden...mal sehn <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
[/Nachtrag]</p>
<p>mfg<br />
v R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/537856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/537856</guid><dc:creator><![CDATA[virtuell Realisticer]]></dc:creator><pubDate>Fri, 11 Jun 2004 06:47:45 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Fri, 11 Jun 2004 13:01:06 GMT]]></title><description><![CDATA[<p>welche Klammern denn? die beim ?: sind notwendig, weil das + eine höhere Priorität hat, die kriege ich nicht weg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/538088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/538088</guid><dc:creator><![CDATA[tag]]></dc:creator><pubDate>Fri, 11 Jun 2004 13:01:06 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Fri, 11 Jun 2004 14:24:53 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5110">@Windalf</a>: Wo gabs das hier denn erst vor kurzem? Ich find nix.</p>
<p>@ShadeOfMine: Dein erster Tipp bringt nicht ne Menge, sondern ein Token (wenn '\0' nur als ein Token zählt, wie jemand in #cpp meinte).</p>
<p>Sorry, kann nur wenig ins Internet, deshalb antworte ich nicht öfter.</p>
<p>PS: Ich hab noch nicht weiter optimiert, das kommt aber noch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/538129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/538129</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Fri, 11 Jun 2004 14:24:53 GMT</pubDate></item><item><title><![CDATA[Reply to wpc115 on Fri, 11 Jun 2004 14:24:37 GMT]]></title><description><![CDATA[<p>CME386 schrieb:</p>
<blockquote>
<p>(wenn '\0' nur als ein Token zählt, wie jemand in #cpp meinte)</p>
</blockquote>
<p>Ist nur eins. Schliesslich kannst du nicht \ 0 schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/538132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/538132</guid><dc:creator><![CDATA[SG1]]></dc:creator><pubDate>Fri, 11 Jun 2004 14:24:37 GMT</pubDate></item></channel></rss>