c:lib:string:*

Diskussionen zu Tutorials, Änderungs- und Erweiterungswünsche
Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: c:lib:string:*

Beitrag von Xin » Sa Nov 15, 2008 2:21 pm

Geändert.

Unten rechts neben dem Eingabefeld findet sich ein 'CR'-Zeichen (Pfeil wie auf der Return-Taste'). Das schaltet den Zeilenumbruch aus, dann geht's einigermaßen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: c:lib:string:*

Beitrag von Xin » So Nov 16, 2008 12:25 am

http://tutorial.proggen.org/doku.php?id ... ing:strcpy

Das Beispiel ist ja okay, aber recht gefährlich... umgekehrt funktioniert es nämlich nicht (längeren String auf kürzen kopieren).
Das kann zu Mißverständnissen führen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: c:lib:string:*

Beitrag von nufan » So Nov 16, 2008 11:58 am

Xin hat geschrieben:http://tutorial.proggen.org/doku.php?id ... ing:strcpy

Das Beispiel ist ja okay, aber recht gefährlich... umgekehrt funktioniert es nämlich nicht (längeren String auf kürzen kopieren).
Das kann zu Mißverständnissen führen.
Hinweis gesetzt. Oder hat jemand ein anderes Beispiel? Aber da wird man immer dieses Problem haben, außer die Strings sind gleich groß.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: c:lib:string:*

Beitrag von Xin » Mo Nov 17, 2008 12:40 am

dani93 hat geschrieben:
Xin hat geschrieben:http://tutorial.proggen.org/doku.php?id ... ing:strcpy

Das Beispiel ist ja okay, aber recht gefährlich... umgekehrt funktioniert es nämlich nicht (längeren String auf kürzen kopieren).
Das kann zu Mißverständnissen führen.
Hinweis gesetzt. Oder hat jemand ein anderes Beispiel? Aber da wird man immer dieses Problem haben, außer die Strings sind gleich groß.
Wo ich grade dabei bin, string.h zu erweitern... Schau Dir bitte die anderen Seiten an und halte Dich an das Schema. Du findest ein Template auch unter http://www.proggen.org/doku.php?id=wiki ... y-referenz

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: c:lib:string:*

Beitrag von nufan » Mo Nov 17, 2008 2:49 pm

Xin hat geschrieben:
dani93 hat geschrieben:
Xin hat geschrieben:http://tutorial.proggen.org/doku.php?id ... ing:strcpy

Das Beispiel ist ja okay, aber recht gefährlich... umgekehrt funktioniert es nämlich nicht (längeren String auf kürzen kopieren).
Das kann zu Mißverständnissen führen.
Hinweis gesetzt. Oder hat jemand ein anderes Beispiel? Aber da wird man immer dieses Problem haben, außer die Strings sind gleich groß.
Wo ich grade dabei bin, string.h zu erweitern... Schau Dir bitte die anderen Seiten an und halte Dich an das Schema. Du findest ein Template auch unter http://www.proggen.org/doku.php?id=wiki ... y-referenz
Soll ich "Siehe auch" auch auf Seiten mit Sidebar einfügen?
strncpy ist definiert in der string, die in C über string.h, bzw. in C++ über cstring eingebunden wird.
"in der string"? Hört sich nicht ganz Deutsch an ;)
Ich würde es eher so formulieren: "strncpy wird in C über string.h, bzw. in C++ über cstring eingebunden"

Ich hab jetzt schon ein paar "meiner" Einträge angepasst, euch aber auch ein paar FIXMEs bezüglich Fehlerquellen hinterlassen :D
strcmp
strcpy
strcat
strlen

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: c:lib:string:*

Beitrag von nufan » Do Nov 20, 2008 10:38 pm

Zu strncpy:

Code: Alles auswählen

char target[20] = "01234567890123456789";
Sind 20 nicht eines zu wenig? '\0' braucht auch noch Platz... ;)

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: c:lib:string:*

Beitrag von Dirty Oerti » Do Nov 20, 2008 11:06 pm

Macht man sowas nicht sowieso normalerweise so:

Code: Alles auswählen

char target[] = "01234567890123456789";
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: c:lib:string:*

Beitrag von Kerli » Do Nov 20, 2008 11:59 pm

Dirty Oerti hat geschrieben:Macht man sowas nicht sowieso normalerweise so:

Code: Alles auswählen

char target[] = "01234567890123456789";
Ja, sollte man auf jeden Fall so machen.

Außerdem, wer zählt denn schon gerne wie lange ein String ist ;)
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

nufan
Wiki-Moderator
Beiträge: 2558
Registriert: Sa Jul 05, 2008 3:21 pm

Re: c:lib:string:*

Beitrag von nufan » Fr Nov 21, 2008 2:42 pm

Dirty Oerti hat geschrieben:Macht man sowas nicht sowieso normalerweise so:

Code: Alles auswählen

char target[] = "01234567890123456789";
Ich habs auch immer so gemacht. Wenn ein String in den anderen kopiert/angehängt/etc. wird, hab ich den zweiten eben deutlich länger gemacht.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8859
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: c:lib:string:*

Beitrag von Xin » Fr Nov 21, 2008 8:50 pm

Zustimmung.

Ich tue mich mit sowas etwas schwer, weil alte Compiler aus
char bla[]
auch schonmal
char * bla
machen und Zeiger werden irgendwo anders gespeichert.
Die Strings sind dann meist (char const *)s, konnten aber bei alten Compiler trotzdem auf char * gespeichert werden.
Der aktuelle GCC erlaubt die Zuweisung eines Strings ja nur noch auf char const *. Bei den Alten endete das dann im Segmentation fault.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten