Veröffentlicht 1. Juni 200124 j ich habe ein array deklariert char inhalt[255]; danach schreibe ich etwas in dieses array scanf("%s",inhalt); jetz möchte ich die länge des eingegebenen strings ermiteln. strlen(inhalt); das funzt auch.so weit so gut. mein prob is wenn ich z.b. hello world schreibe schneidet er alles was nach hello kommt ab. wie kann ich das umgehen? danke cu mohamet
1. Juni 200124 j Hi mohamet Des macht er, weil er blanks nicht will, des kannsch aber mit cin.getline umgehen Much Greetings alligtor
1. Juni 200124 j Hi, mit %c kannst Du nur ein Zeichen einlesen mit %s kannst Du nur ein Wort einlesen und mit gets(inhalt) kannst du die ganze Zeile einlesen. Die Header Datei <string.h> ist hierfür nicht erforderlich aber wohl zum ermitteln der Länge eines Strings mit dem Befehl ... void main() { int laenge; char inhalt[101]; printf("Satz: "); gets(inhalt); laenge = strlen(inhalt); printf("Laenge vom Satz: %d",laenge); } ... Vorsicht, die Leerzeichen werden auch mitgezählt aber nicht der Terminator am Ende. Cu Erhan :confused:
5. Juni 200124 j funzt glaube ich auch mit der funktion get(...) beispiel: int main() { char buffer[255]; int len; get (buffer,255); len = strlen (buffer); } dabei gibt der zweite parameter an, wieviel zeichen maximal eingelesen werden sollen. im bespiel werden maximal 255 zeichen gelesen auch wenn der user 300 eingibt.
6. Juni 200124 j Heute sind statische Arrays kaum noch ein Thema. Arbeite mit CArrays und alle Funktionen die Du Dir wünscht liegen schon griffbereit - und es funktioniert alles. Sowas wie ein Überschreiben des Arrays kann auch nicht mehr passieren, damit werden Anwendungen absturzsicherer und außerdem "fressen" fast alle Betriebssyteme in den Bildschirmmasken CStrings.
6. Juni 200124 j kommt ganz darauf an ob das ganze in c oder c++ geschrieben werde soll. bei dem angegebenen beispiel würde ich dazu tendieren, das c- code gewünscht ist. von wegen scanf ...
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.