Wenn ich eine Zeichenfolge mit mehr als Größe 10 eingeben, warum wird dann kein Kompilierzeitfehler generiert, wie ich str
der Größe 10 deklariert habe? Zum Beispiel habe ich Eingabe welcome to the world
, dann ist es kompilieren und läuft ohne Fehler.Programm, um die Länge einer Zeichenfolge zu finden
#include <stdio.h>
#include <conio.h>
int main() {
int i = 0, length;
char str[10];
printf("enter string: ");
gets(str);
while (str[i] !='\0') {
i = i + 1;
}
length = i;
printf("the length of string is %d", length);
}
Verwenden Sie 'gets()' nicht! Verwenden Sie stattdessen 'fgets()'. 'gets()' ist böse und wurde daher seit langem aus C entfernt. – alk
"... ... warum wird kein Kompilierfehler generiert ... *" meinst du wahrscheinlich "Laufzeitfehler", nicht wahr? – alk
Wie konnte es einen Kompilierzeitfehler erzeugen? Sie kompilieren Ihr Programm einmal und führen es auf unbestimmte Zeit aus. Erwarten Sie, dass der Compiler eine Kristallkugel überprüft, um festzustellen, ob jemand Ihrem Programm jemals eine zu große Linie geben wird? – StoryTeller