String in ASCII umwandeln mit Arrays



  • Implementieren Sie ein Programm, welches Ihren Namen einliest und in ein Array vom Typ char mit fester Gr¨oße speichert. Anschließend soll dieses Array einer Funktion ¨ ubergeben werden, die den ASCII-Wert jedes einzelnen Zeichens aufaddiert und die Summe zur¨uck liefert. Geben Sie die Summe im Hauptprogramm aus, indem Sie sie direkt in einer printf-Anweisung aufrufen.

    Hab keinen Ansatz, bzw. könnte jmd mir unter die Arme greifen..



  • Wie oft willst du die Frage stellen?



  • @R2D2-58 Erstmal legst du das Array an. Dann gibst du mit cout die Aufforderung aus den Namen einzugeben. Dann nimmst du cin um die Eingabe ins Array zu speichern. Dann eine Funktion aufrufen, die ein en Pointer auf char nimmt als Parameter. Dort bestimmst du dann sie Summe mit einer Schleife. Die müsste solange laufen, bis das Nullbyte im Array erreicht ist.



  • #include <stdio.h>
    #include <string.h>

    int main (void) {
    char string1[10];
    printf("Name eingeben:\n");
    scanf("%s", string1);

    printf( "%s mit der Länge %zu\n", string1 , strlen(string1) );
    return 0;
    

    }

    bin jetzt soweit



  • Jetzt fehlt der Teil mit der Umwandlung von den Array feldern



  • @TGGC um ehrlich zu sein, haben wir nie bisher in der Vorlesung mit cout, cin gearbeitet..daher muss es anderweitig gehen diese umzuwandeln



  • @R2D2-58 Du musst jetzt eine eigene Funktion (ähnlich strlen) schreiben, die die Zeichen addiert.

    Die Signatur (Parameter und Rückgabetyp) von strlen würde sogar passen.

    Wenn du cout und cin nicht kennst, ist das C und kein C++.
    (Daher ist es das Falsche Unterforum)



  • @R2D2-58 ok, dann machst anders. Hab ich kein Problem mit.



  • @R2D2-58 Du hast die Aufgabe falsch vestanden. Du sollst ja ein Programm schreiben, das Deinen Namen einliest. Da Du ja Deinen Namen kennst, kanst Du ja auch gleich Dein Programm überprüfen lassen, ob der Benutzer auch Deinen Namen kennt:

    if( strcmp( string1, "R2D2-58" ) ) {
       fputs( stderr, "Nein, so heisse ich nicht!\n" );
       exit(-1 );
    }
    


  • @mgaeckler: So ist das wohl nicht gemeint, sondern mit "ihren Namen" ist einfach nur gemeint, daß der Anwender seinen Namen (wer auch immer das Programm dann benutzt bzw. was auch immer dann eingegeben wird) eingeben soll und daraus dann die Summe (der einzelnen ASCII-Zeichen) berechnet werden soll.



  • @Th69 Das ist aber nicht die richtige Vorgehensweise. Aufgabe eines Entwicklers ist es nicht, zu raten, was der Auftraggeber jetzt wünscht. Der Ausftraggeber hat jetzt nicht gescrieben, daß der Name des Nutzers abgefragt werden soll. Merke, es gibt die Regel:

    Shit in => Shit out



  • @mgaeckler sagte in String in ASCII umwandeln mit Arrays:

    @R2D2-58 Du hast die Aufgabe falsch vestanden. Du sollst ja ein Programm schreiben, das Deinen Namen einliest. Da Du ja Deinen Namen kennst, kanst Du ja auch gleich Dein Programm überprüfen lassen, ob der Benutzer auch Deinen Namen kennt:

    if( strcmp( string1, "R2D2-58" ) ) {
       fputs( stderr, "Nein, so heisse ich nicht!\n" );
       exit(-1 );
    }
    

    dann aber gleich noch anhängen

    else
    {
       printf("Ergebnis: 391");
    }
    

    🤣



  • @mgaeckler

    fputs( stderr, "Nein, so heisse ich nicht!\n" );

    Das ist falsch weil genau verkehrt rum.


Log in to reply