C - Begrenzen Sie die Länge der Zeichenfolge

(Sorry für mein schlechtes Englisch !)

Schrieb ich ein Programm, das Sie auffordert, geben Sie ein Kennwort nicht mehr als eine bestimmte Zahl, acht Zeichen in diesem Fall. Die Zeichen, dass die Grenze, werden ausgeschnitten aus dem array:

#include <stdio.h>
#define MAXCHAR 8

main()
{
    char password[MAXCHAR];
    int i;
    char c;

    printf("Insert password: MAX 8 CHARS!\n\n");
    for(i = 0; i <= MAXCHAR; i++){
        c = getchar();

        if(i == MAXCHAR){
            break;
        }
        else{
            password[i] = c;
        }
    }

    printf("%s\n", password);
}

Damit das Programm funktioniert, ABER es ist ein "seltsames" problem. Wenn die Grenze IST ACHT, und ich geben Sie ein Kennwort mit mehr als acht Zeichen
(Beispiel: P455w0rds98)
die Ausgabe wird wie folgt Aussehen:

P455w0rd

So legt ein smiley am Ende und ich weiß nicht, warum. Es passiert nur, wenn a der Grenzwert ist auf acht.

  • Leichte Korrektur (keine straftat): meinst Du ", fragt Sie auf Typ ein Passwort" ("digit" hat eine andere Bedeutung und ist ziemlich irritierend hier).
  • Lesen Sie mehr über getchar.
  • Olaf, wenn Sie erwarten, dass eine präzise Terminologie angezeigt werden, auf diesem forum, Sie sind sich für die Einstellung Enttäuschung. Ich habe selten sehen auch die "Experten" verwenden Sie korrekte Terminologie konsistent, nachdenklich.
  • Warum würden Sie so etwas sagen ? "...computer-Programmierung möglicherweise nicht für Sie." Verdammt, Sie zerstört mich, ich war nur ein rookie, wenn einer dies geschrieben. Was Sie sagte, ist nicht gerade ermutigend an alle.
InformationsquelleAutor Claudio Pisa | 2016-08-16
Schreibe einen Kommentar