<?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[Array kopieren und zwar stück für stück]]></title><description><![CDATA[<p>Hi, kann mir hier einer sagen wie ich ein array stück für stück kopiere?</p>
<p>ich will ein text in einer matrix schreiben (programmiere erst seit kurzem):</p>
<pre><code>for(i=1;i&lt;=prim1;i++)
        {
          for(j=1;j&lt;=prim2;j++)
          {

             matrix[i*j]=text[l];
             l++;
             }
        }
</code></pre>
<p>matrix[] und text[] sind vom typ char<br />
i,j,l vom typ int</p>
<p>mein dev cpp meckert nicht aber wenn ich matrix[] ausgebe steht da nix drinn</p>
<p>Danke im vorraus<br />
lg ruwn</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/202041/array-kopieren-und-zwar-stück-für-stück</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 12:12:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/202041.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 06 Jan 2008 23:16:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array kopieren und zwar stück für stück on Sun, 06 Jan 2008 23:16:54 GMT]]></title><description><![CDATA[<p>Hi, kann mir hier einer sagen wie ich ein array stück für stück kopiere?</p>
<p>ich will ein text in einer matrix schreiben (programmiere erst seit kurzem):</p>
<pre><code>for(i=1;i&lt;=prim1;i++)
        {
          for(j=1;j&lt;=prim2;j++)
          {

             matrix[i*j]=text[l];
             l++;
             }
        }
</code></pre>
<p>matrix[] und text[] sind vom typ char<br />
i,j,l vom typ int</p>
<p>mein dev cpp meckert nicht aber wenn ich matrix[] ausgebe steht da nix drinn</p>
<p>Danke im vorraus<br />
lg ruwn</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1432161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1432161</guid><dc:creator><![CDATA[ruwn]]></dc:creator><pubDate>Sun, 06 Jan 2008 23:16:54 GMT</pubDate></item><item><title><![CDATA[Reply to Array kopieren und zwar stück für stück on Sun, 06 Jan 2008 23:20:29 GMT]]></title><description><![CDATA[<p>sicher das text[] größer als prim1 * prim2 ist? Sonst schreibst du übern sSpeicher hinaus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1432163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1432163</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 06 Jan 2008 23:20:29 GMT</pubDate></item><item><title><![CDATA[Reply to Array kopieren und zwar stück für stück on Sun, 06 Jan 2008 23:30:33 GMT]]></title><description><![CDATA[<p>was heißt, es &quot;steht <em>nichts</em>&quot; drin? zumindest die daten, die vorher drin waren? wenn dann trotzdem gar nichts ausgegeben wird ist es wohl ein fehler in deiner ausgabefunktion <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>ansonsten wirkt das eher so, als ob prim1 und prim2 kleiner als jeweils 1 sind.</p>
<p>btw. ist es beabsichtigt, dass nicht alle felder von matrix gefüllt werden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1432164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1432164</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Sun, 06 Jan 2008 23:30:33 GMT</pubDate></item><item><title><![CDATA[Reply to Array kopieren und zwar stück für stück on Mon, 07 Jan 2008 00:03:08 GMT]]></title><description><![CDATA[<p>erstmal danke fürs schnelle antworten</p>
<p>prim1 und prim2 sind aufjedenfall kleiner als length(text[]) (sehe gerade das hier l und (eins) gleich aussehen ...) deswegen hab i den code jetzt auf L geändert</p>
<p>Das programm soll einen text so verschlüsseln:</p>
<p>Bsp:</p>
<p>aktiennichtverkaufen</p>
<p>aktienn<br />
ichtver<br />
kaufenx</p>
<p>dann soll es spaltenweise ausgegeben werden:<br />
aikkcathuitfevennrx</p>
<p>dabei sollen spalten- und reihenanzahl primzahlen sein (und zwar die erste zusammengesetzte zahl(aus 2 primzahlen) die größer/gleich der textlänge ist<br />
falls nötig soll mit x aufgefüllt werden. Im Beispiel 3 reihen und 7 spalten.<br />
ein zweidimensionales dynamisches array fällt für mich hier wohl aus, da meine programmierkenntnisse dafür nicht ausreichen:</p>
<pre><code>#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;string.h&gt;
#include &lt;math.h&gt;
#include &lt;iostream.h&gt;
//#include &lt;malloc.h&gt;

int faktorisieren1(int maxnummer, int primzahlen[]);
int faktorisieren2(int maxnummer, int primzahlen[], int faktor1);
int prim_suchen (int primzahlen[], int maxnummer);
int auffuellen(int maxnummer, int faktor1, int faktor2, char text[], int primzahlen[]);
char code(int prim1, int prim2, char text[], char matrix[]);

int main ()
{

    char text[1000], matrix[1000];
    int maxnummer, primzahlen[1000];
    int faktor1, faktor2,prim1,prim2;

    //Eingabe
    printf(&quot;Bitte geben sie den zu kodierenden Text ein max 1000 Zeichen \n&quot;);
    scanf(&quot;%s&quot;,&amp;text);

    maxnummer=(strlen(text));

    // funktionen
    prim_suchen(primzahlen, maxnummer);
    faktor1=faktorisieren1(maxnummer, primzahlen);
    faktor2=faktorisieren2(maxnummer, primzahlen, faktor1);
    auffuellen(maxnummer,faktor1,faktor2, text, primzahlen);
    prim1=primzahlen[faktor1];
    prim2=primzahlen[faktor2];
    code(prim1, prim2, text, matrix);
    printf(&quot;Anagrammcode:  %s \n\n&quot;,matrix);

    //primzahlen[faktor1]
    //printf(&quot;text: %s &quot;,text);

    system(&quot;pause&quot;);

}

int prim_suchen (int primzahlen[], int maxnummer)
{
    int i, j, anzahl;
    int zahlen[1001];

    if (maxnummer &gt; 1000) maxnummer=1000;
    anzahl =-1;
    zahlen[0]=0;
    zahlen[1]=0;
    for (i=2; i&lt;=maxnummer; i++)  zahlen[i]=1;

    for (i=2; i&lt;=maxnummer; i++)
    {
        if (zahlen[i]!=0)
           {
                         anzahl=anzahl+1;
                         primzahlen[anzahl]=i;
                         for (j=i; j&lt;=1000; j=j+i) zahlen[j]=0;
           }
    }
    return anzahl;
}

// Erste Primzahl finden
int faktorisieren1(int maxnummer, int primzahlen[])
{
   int j=0,hilf;
   hilf = sqrt(maxnummer);
   while (primzahlen[j]&lt;=hilf)  j++;

   j=j-1;
   return j;
}
// Zweite Primzahl finden

int faktorisieren2(int maxnummer, int primzahlen[], int faktor1)
{
   int j;
   j=faktor1;

   while (primzahlen[faktor1]*primzahlen[j]&lt;maxnummer)  j++;
   return j;
}

    char text[10000], matrix[10000];
    int maxnummer, primzahlen[1000];
    int faktor1, faktor2,prim1,prim2;

int auffuellen(int maxnummer, int faktor1, int faktor2, char text[], int primzahlen[])
{
    if (maxnummer &lt; (primzahlen[faktor1]*primzahlen[faktor2]))
    {
       while (maxnummer&lt;(primzahlen[faktor1]*primzahlen[faktor2]))
       {
       text[maxnummer]='x';
       maxnummer++;
       }
       text[maxnummer+1]='\0';
    }

}

       // text in die matrix schreiben und vertauscht wieder nach text[]

char code(int prim1, int prim2, char text[], char matrix[])
   {

        int i,j,L,k;
        L=1;

        matrix[0]=2;
        for(i=1;i&lt;=prim1;i++)
        {
          for(j=1;j&lt;=prim2;j++)
          {
             k=j*i;
             matrix[k]=text[L];
             L++;
             }
        }

        return 0;
     }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1432171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1432171</guid><dc:creator><![CDATA[ruwn]]></dc:creator><pubDate>Mon, 07 Jan 2008 00:03:08 GMT</pubDate></item><item><title><![CDATA[Reply to Array kopieren und zwar stück für stück on Mon, 07 Jan 2008 01:33:33 GMT]]></title><description><![CDATA[<p>k=j*i ist falsch. das überspringt (wie oben schon gesagt) alle möglichen indizes.</p>
<p>die funktion müsstest du so implementieren:</p>
<pre><code class="language-cpp">void code(int prim1, int prim2, char text[], char matrix[])
{
   int L = 0;
   for(int i = 0; i &lt; prim2; i++)
   {
      for(int j = 0; j &lt; prim1; j++)
      {
         int k = (j*prim2) + i;
         matrix[L++] = text[k];
      }
   }
}
</code></pre>
<p>ps. für die lesbarkeit habe ich sie ein bisschen umformatiert. variablen solltest du immer so spät wie möglich definieren, am besten also so lokal wie möglich.</p>
<p>die auffüll-funktion lässt sich mit standard-c++ übrigens auch so definieren:</p>
<pre><code class="language-cpp">int auffuellen(int maxnummer, int prim1, int prim2, char text[])
{
   fill_n (text + strlen(text), max(faktor1*faktor2 - maxnummer, 0), 'x');
}
</code></pre>
<p>die funktionen faktorisierenX sollten imo die primzahlen zurückgeben und nicht deren indizes.</p>
<p>die header musst du ändern:</p>
<pre><code class="language-cpp">#include &lt;cstdio&gt;
#include &lt;cstdlib&gt;
#include &lt;cstring&gt;
#include &lt;cmath&gt;
#include &lt;iostream&gt;
using namespace std;
</code></pre>
<p>von printf/scanf solltest du auf cout und cin (the C++ way) umsteigen. (wozu sonst auch den header &lt;iostream&gt; inkludieren?)</p>
<p>wenn du bei den char-arrays von beginn an alle elemente auf 0 setzt, ersparst du dir das lästige einfügen von '\0'. das geht so:</p>
<pre><code class="language-cpp">char text[1000] = {};
</code></pre>
<p>(oder gleich auf C++-strings umsteigen)</p>
<p>hm bei mir funktioniert dein programm mit der neuen kodier-funktion jetzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1432175</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1432175</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Mon, 07 Jan 2008 01:33:33 GMT</pubDate></item><item><title><![CDATA[Reply to Array kopieren und zwar stück für stück on Mon, 07 Jan 2008 08:43:48 GMT]]></title><description><![CDATA[<p>hui *sprachlosigkeit*<br />
danke schön <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>das mit dem prim2 *j ist einleuchtend <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>manchmal ging mir das printf... so auf die nerven das ich auf cout umgestiegen bin ( aber leider hab ich keine ahnung wie man nen return macht ( also zeilenvorschub))</p>
<p>Was heisst &quot;using namespace std;&quot;? ach das krieg ich schon raus ...</p>
<p>Nochmals danke <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/1432230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1432230</guid><dc:creator><![CDATA[ruwn]]></dc:creator><pubDate>Mon, 07 Jan 2008 08:43:48 GMT</pubDate></item><item><title><![CDATA[Reply to Array kopieren und zwar stück für stück on Mon, 07 Jan 2008 09:58:33 GMT]]></title><description><![CDATA[<p>ruwn schrieb:</p>
<blockquote>
<p>hui *sprachlosigkeit*<br />
danke schön <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>
</blockquote>
<p>du bemühst dich ja auch <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>
<blockquote>
<p>manchmal ging mir das printf... so auf die nerven das ich auf cout umgestiegen bin ( aber leider hab ich keine ahnung wie man nen return macht ( also zeilenvorschub))</p>
</blockquote>
<p>ein newline? so wie mit printf eigentlich auch:</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;Text\nZweite Zeile\n\nAbsatz&quot;;
</code></pre>
<p>also mit '\n'.<br />
falls du eine neue zeile nach der ausgabe einer zahl (oder etwas anderem) brauchst:</p>
<pre><code class="language-cpp">int zahl = 42;
cout &lt;&lt; &quot;Text &quot; &lt;&lt; zahl &lt;&lt; '\n';
</code></pre>
<p>und wenn du eventuell noch die standardausgabe flushen willst (also sichergehen, dass alles, was du an cout geschickt hast, auch ausgegeben wird), verwendest du endl:</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot;Viel, viel Text...&quot; &lt;&lt; endl;
</code></pre>
<p>ist gleichbedeutend mit <code>&lt;&lt; '\n' &lt;&lt; flush</code> . eigentlich braucht man flush/endl aber nur selten.</p>
<blockquote>
<p>Was heisst &quot;using namespace std;&quot;? ach das krieg ich schon raus ...</p>
</blockquote>
<p>gut <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="😉"
    /><br />
hier: <a href="http://de.wikipedia.org/wiki/Namespace" rel="nofollow">http://de.wikipedia.org/wiki/Namespace</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1432254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1432254</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Mon, 07 Jan 2008 09:58:33 GMT</pubDate></item></channel></rss>