Wieso wird der String nicht wiedergegeben???



  • Hallo ich habe folgendes Programm geschrieben aber bei mir gibt er einfach nicht den String wieder bis auf das "g" vom Ende.

    Hoffe es kann mir jemand helfen

    void main(void)
    {
        char array[19] = {'D', 'i', 'e', 's', ' ', 'i','s','t', ' ', 'e', 'i', 'n',
                          ' ', 'S', 't', 'r', 'i', 'n', 'g'};
        int i = 0;
    /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
    /*                  Ausgabe des String im Array                               */
    /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
    
        printf("\n\n\n\n");
        printf("\t Der String im Array lautet:  \n\t");
    
        for(i=0; i<=18; i++);
        printf("%c",array[i]);
    
        printf("\n\n\t Bitte druecken sie eine beliebige Taste");
        printf("\n\t");
    getch();
    }
    


  • Hmm, irgendwo ist da wohl ein Semikolon zuviel? Vielleicht nach der Schleife! 😉



  • BTW: Es sollte int main() und nicht void main (void) heißen und man kann auch char array[20] = "Dies ist ein String" schreiben...



  • zudem ist das array zu klein, da es nicht mehr das \0 - Char aufnehmen kann.
    Ist bei deiner Ausgabe mit Schleife nicht so wild aber bei
    printf("%s", meinStrArray); kannse ne Überraschung erleben!



  • gh0st124 schrieb:

    zudem ist das array zu klein, da es nicht mehr das \0 - Char aufnehmen kann.

    Da ist nirgends ein Null-Zeichen, was aufgenommen werden müsste.



  • Am einfachsten wäre es ja auch folgendes zu schreiben:

    #include <stdio.h>
    
    int main(void) 
    { 
        char array[] = "Dies ist ein String"; 
        int i = 0; 
    /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ 
    /*                  Ausgabe des String im Array                               */ 
    /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ 
    
        puts("\n\n\n"); 
        puts("\t Der String im Array lautet:  \t"); 
    
        for(i=0; i < sizeof array ; ++i); 
            putchar(array[i]); 
    
        puts("\n\n\t Bitte druecken sie eine beliebige Taste"); 
        puts("\t"); 
        getch(); 
        return 0;
    }
    


  • Warum nicht:

    #include <stdio.h>
    
    int main(void) 
    { 
        char array[] = "Dies ist ein String"; 
        /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ 
        /*                  Ausgabe des String im Array                               */ 
        /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ 
        printf("\n\n\n\t Der String im Array lautet:  \t%s\n\n\t Bitte druecken sie eine beliebige Taste", array);            
        getch(); 
        return 0;
    }
    


  • Wahrscheinlich gehts auch um die Arrays und die [] Operatoren.....



  • Habe es mal probiert.
    So funktioniert es.

    for(i = 0; i < 19; i++)
            printf("%c", array[i]);
    

    Fange gerade an, mich mit Strings zu beschäftigen.
    Bin mir nicht ganz klar, ob

    char array[19] = {'D', 'i', 'e', 's', ' ', 'i','s','t', ' ', 'e', 'i', 'n', 
                          ' ', 'S', 't', 'r', 'i', 'n', 'g'};
    

    überhaupt ein String ist.
    Wie gh0st124 bemerkte:

    ...aber bei
    printf("%s", meinStrArray); kannse ne Überraschung erleben!

    Und da ist was dran.
    :xmas2: Frohe Weihnacht Euch allen.



  • azoikum schrieb:

    Bin mir nicht ganz klar, ob

    char array[19] = {'D', 'i', 'e', 's', ' ', 'i','s','t', ' ', 'e', 'i', 'n', 
                          ' ', 'S', 't', 'r', 'i', 'n', 'g'};
    

    überhaupt ein String ist.

    Also ich sehe das schon als String an. Schließlich ist ein String nicht mehr als eine Kette von einzelnen chars. Nur die \0 fehlt als Stringendezeichen. Aber bei der Art der Ausgabe ist das ja egal.


Anmelden zum Antworten