Pyramide mit Strcpy und Strcat



  • wenn du nicht drauf kommst, helf ich dir gerne nochmals weiter, aber soll ja auch ein Lerneffekt dabei sein

    Kleiner Tipp:
    Kopiere nicht die ganze Zeile mit strcpy



  • Super angebot;D

    Dann versuch ichs heute nochmal, wenns gar net klappt würde ich dann gerne auf dein Angebot zurückkommen.

    Und danke für den Tipp (überlege schon wie er mir nützlich sein kann;D)

    danke danke, klasse hilfe hier!!! 😮



  • Korhil schrieb:

    Nur leider sollte er jetzt explizit es mit strcpy und strcat machen !

    Klar, um an den Paralympics teilnehmen zu dürfen, muß man sich auch erstmal die Beine abhacken und 'nen Rollstuhl unterschnallen. 😃

    Ziel der Übung ist wohl, mit der Stringbehandlung warm zu werden. Daß die Funktionen wegen ihrer Allgemeinheit aber nicht die schnellsten sind, darf ruhig nochmal erwähnt sein. Sie werden an dieser Stelle nur einer Aufgabenstellung gerecht.



  • pointercrash() schrieb:

    Ziel der Übung ist wohl, mit der Stringbehandlung warm zu werden. Daß die Funktionen wegen ihrer Allgemeinheit aber nicht die schnellsten sind, darf ruhig nochmal erwähnt sein.

    ich wette dass strcpy/strcat schneller sind, als wenn man alles mit einzelnen printfs ausgeben würde.
    🙂



  • ~fricky schrieb:

    ich wette dass strcpy/strcat schneller sind, als wenn man alles mit einzelnen printfs ausgeben würde. 🙂

    Nöh, hatte mal ein ähnliches Problem und mir einmal mit malloc() Platz für den String geschaffen, als array of char manipuliert und als Zeile in einem Rutsch ausgegeben, war viel schneller als die Herumkopiererei. Ausgeben muß man's ja sowieso wenigstens einmal.
    Aber Du hast insofern recht, für jedes einzelne Zeichen printf zu bemühen ist die müdeste Lösung. 😉



  • hmm, scheints bin ich zu blöd für (obs oktoberfest drann schuld war?). wenn mir jmd ne lösung reinschreiben könnt wäre ich sehr dankbar.



  • Korhil schrieb:

    *
        ***
       *****
      *******
     *********
    ***********
    

    Diese Pyramide ist anders. Die des OP hat Leerzeichen 😉



  • #include <stdio.h>
    
    #define h_max 128
    
    char a[h_max+h_max-1], b[h_max+h_max-1];
    
    void pyramid( unsigned h )
    {
        int i = 0, j=0;
    
        if ( h > h_max )
            return;
    
        while ( i < h-1 )
            a[i++] = ' ';
    
        a[h-1] = '*';
    
        i = 1;
    
        puts(a);
    
        while ( i < h )
        {
            strcat( a, " *" );
            strcpy( b, a + i );
            puts( b );
            i++;
        }
    }
    
    int main( void )
    {
        unsigned h;
        printf( "h? " );
    
        if( 1 == scanf ( "%u", &h ) )
            pyramid ( h );
    
        while( getchar() != '\n' );
        getchar();       
        return 0;
    }
    


  • Merker+ schrieb:

    Korhil schrieb:

    *
        ***
       *****
      *******
     *********
    ***********
    

    Diese Pyramide ist anders. Die des OP hat Leerzeichen 😉

    Du hast Recht, ändert an der Lösung des Problems aber genau bei einem Zeichen was: " *" anstatt "**".



  • Jeehaa ich danke euch!!!


Anmelden zum Antworten