<?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[2 Zeichenketten &#x2F; Arrays vergleichen]]></title><description><![CDATA[<p>Hallo Gemeinschaft,</p>
<p>in meinem Programm erzeuge ich zwei Zahlenfolgen deren Inhalt Zahlen von 1 bis 29 sind. Nun möchte ich die Zahlenfolgen auf gleiche Sequenzen vergleichen, und diese Sequenzen dann weiter verwenden.<br />
Die beiden Zahlenfolgen können in 1, 2, oder 3 Stellen übereinstimmen. Die übereinstimmenden Sequenzen können jedoch an unterschiedlichen Positionen stehen.<br />
Nehmen wir als Beispiel die Zahlenfolgen A= 2,3 und B= 2,2,3. Am Ende möchte ich die übereinstimmende Sequenz 2,3 zur verfügung haben. Um die Zahlenfolgen zu untersuchen, habe ich die Möglichkeit, diese in Arrays oder AnsiStrings zu speichern:</p>
<pre><code class="language-cpp">// Vereinfachte Darstellung für Zustand nach der Erzeugung:

// Variante 1 - Zahlenfolge in Array (0 bedeutet leer)
int ZaFoA[4]= {2,3,0,0};
int ZaFoB[4]= {2,2,3,0};

// Variante 2 - Zahlenfolge in AnsiString (Zeichen . und # zur einfacheren Untersuchung)
AnsiString ZaFoA= &quot;2.3#&quot;;
AnsiString ZaFoB= &quot;2.2.3#&quot;;
</code></pre>
<p>Ich bekomme es leider nicht hin, ohne 20 Seiten Quelltext zu füllen. Hat nich jemand einen Tip für mich? Wie würdet Ihr das angehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/207747/2-zeichenketten-arrays-vergleichen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 06:31:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/207747.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Mar 2008 13:11:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 2 Zeichenketten &#x2F; Arrays vergleichen on Tue, 11 Mar 2008 13:11:27 GMT]]></title><description><![CDATA[<p>Hallo Gemeinschaft,</p>
<p>in meinem Programm erzeuge ich zwei Zahlenfolgen deren Inhalt Zahlen von 1 bis 29 sind. Nun möchte ich die Zahlenfolgen auf gleiche Sequenzen vergleichen, und diese Sequenzen dann weiter verwenden.<br />
Die beiden Zahlenfolgen können in 1, 2, oder 3 Stellen übereinstimmen. Die übereinstimmenden Sequenzen können jedoch an unterschiedlichen Positionen stehen.<br />
Nehmen wir als Beispiel die Zahlenfolgen A= 2,3 und B= 2,2,3. Am Ende möchte ich die übereinstimmende Sequenz 2,3 zur verfügung haben. Um die Zahlenfolgen zu untersuchen, habe ich die Möglichkeit, diese in Arrays oder AnsiStrings zu speichern:</p>
<pre><code class="language-cpp">// Vereinfachte Darstellung für Zustand nach der Erzeugung:

// Variante 1 - Zahlenfolge in Array (0 bedeutet leer)
int ZaFoA[4]= {2,3,0,0};
int ZaFoB[4]= {2,2,3,0};

// Variante 2 - Zahlenfolge in AnsiString (Zeichen . und # zur einfacheren Untersuchung)
AnsiString ZaFoA= &quot;2.3#&quot;;
AnsiString ZaFoB= &quot;2.2.3#&quot;;
</code></pre>
<p>Ich bekomme es leider nicht hin, ohne 20 Seiten Quelltext zu füllen. Hat nich jemand einen Tip für mich? Wie würdet Ihr das angehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472045</guid><dc:creator><![CDATA[Kolumbus]]></dc:creator><pubDate>Tue, 11 Mar 2008 13:11:27 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Zeichenketten &#x2F; Arrays vergleichen on Tue, 11 Mar 2008 13:31:40 GMT]]></title><description><![CDATA[<p>Also ich würde<br />
-die beiden Folgen in einen Container legen, die wahlweisen iteratorzugriff erlauben (std::vector, std::string)<br />
- mit einen iterator durch die erste Folge gehen, für jedes Element einen zweiten iterator nehmen, der<br />
+ ein Element voraus,<br />
+ zwei Elemente voraus,<br />
+ drei Elemente voraus,<br />
ist,<br />
- und dann mit diesem Iteratorpaar das im zweiten Container suchen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472064</guid><dc:creator><![CDATA[witte_]]></dc:creator><pubDate>Tue, 11 Mar 2008 13:31:40 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Zeichenketten &#x2F; Arrays vergleichen on Tue, 11 Mar 2008 13:50:03 GMT]]></title><description><![CDATA[<p>Das Suchen kann man mit <a href="http://www.dinkumware.com/manuals/?manual=compleat&amp;page=algorith.html#search" rel="nofollow">search</a> aus algorithm erledigen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472091</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472091</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 11 Mar 2008 13:50:03 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Zeichenketten &#x2F; Arrays vergleichen on Tue, 11 Mar 2008 14:27:45 GMT]]></title><description><![CDATA[<p>Na ja, so schwer ist das aber auch nicht, lässt sich doch relativ simpel erledigen:</p>
<pre><code class="language-cpp">int ZaFoA[4]= {2,3,0,0};
int ZaFoB[4]= {2,2,3,0};
int ZaFoR[4] = {0,0,0,0}; // Ergebnisarray

int test;

for (int x = 0; x &lt; 4; x++)
{
	test = ZaFoA[x];
	if (test == 0) // Nullen im Ausgangsarray ignorieren
		continue;
	for (int y = 0; y &lt; 4; y++)
	{
		if (test == ZaFoB[y])
		{
			for (int z = 0; z &lt; 4; z++)
			{
				if (test == ZaFoR[z])
					break;
				if (ZaFoR[z] == 0)
				{
					ZaFoR[z] = test;
					break;
				}
			}
		}
	}
}
</code></pre>
<p>Das Sortieren würde ich vorher in den Ausgangsarrays machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472121</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472121</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 11 Mar 2008 14:27:45 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Zeichenketten &#x2F; Arrays vergleichen on Tue, 11 Mar 2008 14:45:51 GMT]]></title><description><![CDATA[<p>Wie willst Du damit Sequenzen finden? Das Teil findet doch nur alle Elemente, die in beiden Reihen vorkommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472143</guid><dc:creator><![CDATA[witte_]]></dc:creator><pubDate>Tue, 11 Mar 2008 14:45:51 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Zeichenketten &#x2F; Arrays vergleichen on Tue, 11 Mar 2008 15:02:05 GMT]]></title><description><![CDATA[<p>Aus der BCB Hilfe:</p>
<p>equal</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;
 #include &lt;vector&gt;
 #include &lt;functional&gt;
 #include &lt;iostream&gt;
 using namespace std;
 int main()
 {
   int d1[4] = {1,2,3,4};
   int d2[4] = {1,2,4,3};
   //
   // Set up two vectors
   //
   vector&lt;int&gt; v1(d1+0, d1 + 4), v2(d2+0, d2 + 4);
   // Check for equality
   bool b1 = equal(v1.begin(),v1.end(),v2.begin());
   bool b2 = equal(v1.begin(),v1.end(),
                   v2.begin(),equal_to&lt;int&gt;());

   // Both b1 and b2 are false
   cout &lt;&lt; (b1 ? &quot;TRUE&quot; : &quot;FALSE&quot;)  &lt;&lt; &quot; &quot; 
        &lt;&lt; (b2 ? &quot;TRUE&quot; : &quot;FALSE&quot;) &lt;&lt; endl;
   return 0;
 }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1472161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472161</guid><dc:creator><![CDATA[sir_ment]]></dc:creator><pubDate>Tue, 11 Mar 2008 15:02:05 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Zeichenketten &#x2F; Arrays vergleichen on Tue, 11 Mar 2008 15:35:35 GMT]]></title><description><![CDATA[<p>witte_ schrieb:</p>
<blockquote>
<p>Wie willst Du damit Sequenzen finden? Das Teil findet doch nur alle Elemente, die in beiden Reihen vorkommen.</p>
</blockquote>
<p>Du hast recht, das mit den Sequenzen hab ich glatt überlesen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472217</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 11 Mar 2008 15:35:35 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Zeichenketten &#x2F; Arrays vergleichen on Wed, 12 Mar 2008 08:53:05 GMT]]></title><description><![CDATA[<p>Ich werde den fertigen Code heute Nachmittag mal posten. Vielleicht könnt ihr mir dann noch Tips zum verkürzen geben...</p>
<p>Den Codeschnipsel von sir_ment finde ich sehr interessant. Haben doch neulich einige hier im Forum mit mir darüber diskutiert und mir klargemacht, dass ein Vektor kein Array ist und das mit &quot;vector&quot; im Zusammenhang mit VCL / BCB immer std::vector gemeint ist. Nun schau sich einer das Beispiel aus der BCB-Hilfe von sir_ment an: Der werden die eindimmensionalen int-Arrays doch glatt &quot;vector&quot; genannt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472588</guid><dc:creator><![CDATA[Kolumbus]]></dc:creator><pubDate>Wed, 12 Mar 2008 08:53:05 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Zeichenketten &#x2F; Arrays vergleichen on Wed, 12 Mar 2008 09:07:47 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Kolumbus schrieb:</p>
<blockquote>
<p>Nun schau sich einer das Beispiel aus der BCB-Hilfe von sir_ment an: Der werden die eindimmensionalen int-Arrays doch glatt &quot;vector&quot; genannt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Wo werden da Arrays als Vektoren bezeichnet? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Im Code gibt es 2 Vektoren die auch so bezeichnet werden</p>
<pre><code class="language-cpp">// Set up two vectors
vector&lt;int&gt; v1..., v2...;
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472595</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472595</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 12 Mar 2008 09:07:47 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Zeichenketten &#x2F; Arrays vergleichen on Wed, 12 Mar 2008 09:23:46 GMT]]></title><description><![CDATA[<p>Ich dachte der Kommentar bezieht sich auf die Initializierung darüber.. Jetzt bin ich wach! Ich nehme Alles zurück und behaupte hiermit das Gegenteil!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472610</guid><dc:creator><![CDATA[Kolumbus]]></dc:creator><pubDate>Wed, 12 Mar 2008 09:23:46 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Zeichenketten &#x2F; Arrays vergleichen on Wed, 12 Mar 2008 11:29:48 GMT]]></title><description><![CDATA[<p>So, habe fertig!</p>
<p>Ich habe eine angenehm übersichtliche Variante gefunden. Ich arbeite mit int-Arrays (2x2-dimensional, 2x1-dimensional). String-Arrays waren für Zahlenreihen-Vergleiche zu unhandlich.<br />
Das Ganze dient übrigens der Berechnung des größten gemeinsamen Teiler (ggT) zweier Zahlen zwischen 1 und 60. Dazu werden durch <a href="http://de.wikipedia.org/wiki/Primfaktorzerlegung" rel="nofollow">Primfaktorzerlegung</a> 2 Zahlenreihen gebildet, aus denen dann gleiche Sequenzen gefunden werden müssen.<br />
Durch das Verfahren zur Ermittlung des ggT kommt erschwerend zu meinem Eingangspost hinzu, dass gleiche Sequenzen auch aus Teilsequenzen der Zahlenreihen bestehen können. Erleichternd wirkt jedoch, dass die Zahlenreihen hier nur aus den 10 ersten Primzahlen bestehen können und maximal 5 Elemente besitzen:</p>
<pre><code>Beispiel:
Zahl 1: 10
Zahl 2: 30 
Zahlenreihe 1: 2, 5
Zahlenreihe 2: 2, 3, 5
gleiche Sequenz: 2, 5
</code></pre>
<p>Nun gehe ich wie folgt vor:<br />
<strong>1</strong> Anlegen eines const int Array PrimZ[10] mit den Primzahlen<br />
<strong>2</strong> Ermittlung der Zahlenreihen durch Primfaktorzerlegung und Speichern der Werte in int Array PriFakt[2][5]<br />
<strong>3</strong> Vergleichen der einzelnen Elemente von PriFakt[0][] und PriFakt[1][] mit jedem Element von PrimZ[10] und Speichern der Häufigkeit von Übereinstimmungen in FaktCount[2][10]<br />
<strong>4</strong> Vergleichen der Häufigkeiten in FaktCount[0][i] und FaktCount[1][i] (wenn beide nicht 0) und kleineres FaktCount[][i] * PrimZ[i] zum Ergebniswert multiplizieren</p>
<pre><code class="language-cpp">Beispiel:
// Zahlen werden an Funktion ggT übergeben:
int ZahlA= 10, ZahlB= 30;
// Deklarationen und Initialisierungen:
int ggT=1;
int FaktCount[2][10]= {{0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0}};
int PriFakt[2][5]= {{0,0,0,0,0},{0,0,0,0,0}};
// Schritt 1:
const int PrimZ[10]= {2,3,5,7,11,13,17,19,23,29};
// Schritt 2 - Ergebnis:
PriFakt[2][5]= {{2,5,0,0,0},{2,3,5,0,0}}
// Schritt 3 - Ergebnis:
FaktCount[2][10]= {{1,0,1,0,0,0,0,0,0,0},{1,1,1,0,0,0,0,0,0,0}}
// Schritt 4 - Ergebnis:
ggT= 1*((1*2)*(1*5))= 10;
</code></pre>
<p>Ich bin stolz auf mich (uhh was stinkt hier so nach Eigenlob?) <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>Falls sich jemand für den Code oder die Problematik interessiert, stehe ich zur Verfügung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1472703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1472703</guid><dc:creator><![CDATA[Kolumbus]]></dc:creator><pubDate>Wed, 12 Mar 2008 11:29:48 GMT</pubDate></item></channel></rss>