Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
--- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
---- Softwaretechnik (http://www.informatikerboard.de/board/board.php?boardid=18)
----- Wörter in 2D Array einlesen - C (http://www.informatikerboard.de/board/thread.php?threadid=2614)


Geschrieben von eulerscheZahl am 25.11.2015 um 20:02:

 

scanf("%s") beendet den string auch mit '\0'. Du kannst bis zu dieser 0 gehen und den Rest dann wie vorher auch byteweise setzen.
Um die '\0' zu finden gibt es auch die Funktion strlen().
scanf ist es aber egal, wenn du mehr Zeichen einliest, als du Speicher zur Verfügung hast.



Geschrieben von Karlito am 25.11.2015 um 22:21:

 

Das ist nur begrenzt korrekt. Man kann die Anzahl der eingelesenen Zeichen beschränken.

code:
1:
2:
3:
scanf("%29s", wortliste[i]);


sollte dafür funktionieren. S.

Es gibt noch ein paar weitere Spielarten. Scheinbar kann man mit %ms beiliebig langen Text angeben und scanf kümmert sich um die Allokation... Ich denke wir müssen es hier aber nicht übertreiben.

Tipp: Unter linux mal "man scanf" ins Terminal eingeben.

Gruß,

Karlito


Forensoftware: Burning Board, entwickelt von WoltLab GmbH