1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
|
int leseZeichenkette(char* zielZeichenkette)
{
int i = 0; //aktuelle Position/Länge des strings
char c; //aktuell eingelesenes Zeichen, also zeichenkette[i]
while(i < MAX_LAENGE) //solange wir die Maximallänge nicht erreicht haben
{
c = getchar(); //liest nächstes Zeichen ein
if(c == '\n') //wenn es ENTER ist, abbrechen
break;
zielZeichenkette[i] = c; //schreibe eingelesenen Zeichen in Zeichenkette
i++; //erhöhe Schreibposition
}
if(c != '\n') //Wenn kein ENTER, also wenn die Zeichenkette zu lang war
{
i = 0; //setze Position auf 0
leeren(); //aufräumen, damit der Rest nicht beim nächsten Funktionsaufruf dazukommt
}
for(; i < MAX_LAENGE; i++) //leere den String von der letzten Schreibposition (0 bei Überlauf) aus
zielZeichenkette[i] = '\0';
if(c != '\n')
return -1; //bei Überlauf Fehler zurückgeben
return 0; //OK zurückgeben
} |