06.10.2013 Aufrufe

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />

19.2 Str<strong>in</strong>g Funktionen <br />

In der Def<strong>in</strong>itionsdatei werden zwei Gruppen von Funktionen für Zeichenketten<br />

deklariert. Die erste Gruppe hat Namen, <strong>die</strong> mit str beg<strong>in</strong>nen <strong>und</strong> ist für mit \0 abgeschlossene<br />

Str<strong>in</strong>gs gedacht; <strong>die</strong> Namen der zweiten Gruppe beg<strong>in</strong>nen mit mem, <strong>die</strong>se s<strong>in</strong>d für re<strong>in</strong>e Speichermanipulationen<br />

vorgesehen. Sieht man von memmove ab, ist der Effekt der Kopierfunktionen <strong>und</strong>ef<strong>in</strong>iert,<br />

wenn sich der Ziel- <strong>und</strong> der Quellbereich überlappen.<br />

char *strcpy(char * s, const char * ct) Zeichenkette ct <strong>in</strong> Array s kopieren, <strong>in</strong>klusive '\0'; liefert s.<br />

char *strncpy(char * s, const char * ct, size_t n)<br />

Höchstens n Zeichen aus Str<strong>in</strong>g ct <strong>in</strong> Str<strong>in</strong>g s kopieren; liefert s. Mit '\0'<br />

auffüllen, wenn Str<strong>in</strong>g ct weniger als n Zeichen hat.<br />

char *strcat(char * s, const char * ct) Zeichenkette ct h<strong>in</strong>ten an <strong>die</strong> Zeichenkette s anfügen; liefert s.<br />

char *strncat(char * s, const char * ct, size_t n)<br />

Höchstens n Zeichen von ct h<strong>in</strong>ten an <strong>die</strong> Zeichenkette s anfügen <strong>und</strong> s mit<br />

'\0' abschliessen; liefert s.<br />

<strong>in</strong>t strcmp(const char * cs, const char * ct)<br />

Str<strong>in</strong>gs cs <strong>und</strong> ct vergleichen; liefert ct. (Re<strong>in</strong>er ASCII-Vergleich, nicht Lexikalisch)<br />

<strong>in</strong>t strncmp(const char * cs, const char * ct, size_t n)<br />

Höchstens n Zeichen von cs mit der Zeichenkette ct vergleichen; liefert ct.<br />

char *strchr(const char * cs, char c) Liefert Zeiger auf das erste c <strong>in</strong> cs oder NULL, falls nicht vorhanden.<br />

char *strrchr(const char * cs, char c) Liefert Zeiger auf das letzte c <strong>in</strong> cs, oder NULL, falls nicht vorhanden,<br />

size_t strspn(const char * cs, const char * ct)<br />

Liefert Anzahl der Zeichen am Anfang vom Str<strong>in</strong>g cs, <strong>die</strong> sämtliche im<br />

Str<strong>in</strong>g ct auch vorkommen.<br />

size_t strcspn(const char * cs, const char * ct)<br />

Liefert Anzahl der Zeichen am Anfang vom Str<strong>in</strong>g cs, <strong>die</strong> sämtliche im<br />

Str<strong>in</strong>g ct nicht vorkommen.<br />

char *strpbrk(const char * cs, const char * ct)<br />

Liefert Zeiger auf <strong>die</strong> Position <strong>in</strong> Str<strong>in</strong>g cs, an der irgende<strong>in</strong> Zeichen aus ct<br />

erstmals vorkommt, oder NULL, falls ke<strong>in</strong>es vorkommt.<br />

char *strstr(const char * cs, const char * ct)<br />

Liefert Zeiger auf erstes Auftreten von ct <strong>in</strong> cs oder NULL, falls nicht vorhanden.<br />

(Suchen von Str<strong>in</strong>g <strong>in</strong> anderem Str<strong>in</strong>g)<br />

size_t strlen(const char * cs) Liefert Länge von cs (ohne '\0').<br />

char *strerror(size_t n) Liefert Zeiger auf Zeichenkette, <strong>die</strong> <strong>in</strong> der Implementierung für den Fehler<br />

mit der Nummer n def<strong>in</strong>iert ist.<br />

char *strtok(char * s, const char * ct) strtok durchsucht s nach Zeichenfolgen, <strong>die</strong> durch Zeichen aus ct begrenzt<br />

s<strong>in</strong>d. (Zerlegt e<strong>in</strong>en Str<strong>in</strong>g <strong>in</strong> Teilstr<strong>in</strong>gs)<br />

Die mem... Funktionen s<strong>in</strong>d zur Manipulation von Speicherbereichen gedacht; sie behandeln den<br />

Wert \0 wie jeden anderen Wert, deshalb muss immer e<strong>in</strong>e Bereichslänge angegeben werden.<br />

void *memcpy(void * s, const void * ct, size_t n)<br />

Kopiert n Zeichen/Bytes von ct nach s; liefert s.<br />

void *memmove(void * s, const void * ct, size_t n)<br />

Wie memcpy, funktioniert aber auch, wenn sich <strong>die</strong> Bereiche überlappen.<br />

<strong>in</strong>t memcmp(const void * cs, const void * ct, size_t n)<br />

Vergleicht <strong>die</strong> ersten n Zeichen vom Bereich cs mit dem Bereich ct; Resultat<br />

analog zu strcmp.<br />

void *memchr(const void * cs, char c, size_t n)<br />

Liefert Zeiger auf das erste Byte mit dem Wert c <strong>in</strong> cs oder NULL, wenn<br />

das Byte <strong>in</strong> den ersten n Zeichen nicht vorkommt.<br />

void *memset(void * s, char c, size_t n) Setzt <strong>die</strong> ersten n Bytes von s auf den Wert c, liefert s. (Speicher füllen)<br />

Gedruckt am 11.09.2008 13:04:00 Letzte Änderung am: 11. September 2008 Version 2.4, I. Oesch 69/147

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!