Teil 11 : Bibliotheken - Stringverarbeitung I |
<string.h> |
Bei den folgenden Befehlen muß die Headerdatei <string.h> durch
ein
#include <string.h> |
In den Beispielen gelten folgende Variablenvereinbarungen:
char *a;
char *b; char c; int n;
|
Wie immer bitte daran denken, das hier nur die wichtigsten Teile der
Programme abgebildet sind, die das Wesentliche darstellen!
Um vollständig laufende Programme zu erstellen sind die Beispiele
zu ergänzen.
strcat ( char *a , char *b ) |
Es wird an a die Zeichenfolge von b angehängt.
char *a = "C-Kurs ";
char *b = "bei AOL"; printf ("\na = %s\nb = %s\n",a,b); /*
strcat ( a, b ); printf("\na = %s\n",a); |
Das Beispiel gibt erst die Einzelnentrings aus und danach den neuen
String a.
Das fertige Programm liefert also:
a = C-Kurs
b = bei AOL a = C-Kurs bei AOL |
strncat ( char *a , char *b , int n ) |
Es wird wie bei strcat b an a angehängt. Jedoch
nur maximal n Zeichen von b werden angehängt..
char *a = "C-Kurs ";
char *b = "bei AOL macht Spasz"; int n = 7; printf ("\n%s\n%s\n",a,b); /*
Jedoch nur maximal n Zeichen von b strncat ( a, b ); printf("\n%s\n",a); |
Nachdem wir das Programm starten, erhalten wir
C-Kurs
bei AOL macht Spasz C-Kurs bei AOL |
int m = strcmp ( char *a , char *b ) |
Die beiden Zeichenketten werden miteinander verglichen.
Je nach Ergebnis werden folgende Werte als Ergebnis nach m zurückgegeben:
|
In einem Programm sieht das dann so aus:
char *a = "C-Kurs 1";
char *b = "C-Kurs 2"; /*
miteinander verglichen printf ("\n%d\n", strcmp (a,b) ); printf ("\n%d\n", strcmp (a,a) ); printf ("\n%d\n", strcmp (b,a) ); |
Das Ergebnis beim starten des Programms sieht wie folgt aus:
-1
0 1 |
int m = strncmp ( char *a , char *b , int n ) |
Die Funktion ist fast die selbe wie strcmp mit dem Unterschied,
das nur die ersten n Zeichen verglichen werden.
Alle nachfolgenden Zeichen werden ignoriert.
strcpy ( char *a , char *b ) |
Der Inhalt von b wird nach a kopiert.
Das Beispielprogramm....
char *a = "Der deutsche ";
char *b = "AOL C-Kurs"; printf ("\n%s",a); strcpy (a,b); printf ("%s\n",a); |
Der deutsche AOL C-Kurs |
strncpy ( char *a , char *b , int n ) |
Es werden höchstens n Zeichen von b nach a kopiert.
Das Beispielprogramm....
char *a = "Der deutsche ";
char *b = "AOL C-Kurs"; int n = 3; printf ("\n%s",a); strncpy (a,b,n); printf ("%s\n",a); |
Der deutsche AOL |
int n = strlen ( char *a ) |
Es wird die Länge der Zeichenkette ( ohne /0 ) nach n
zurückgegeben ( s. dazu auch Teil 1
)
char *a ="C macht Spasz";
int n; n = strlen (a); printf ("\na ist %d Zeichen lang\n",n); |
a ist 13 Zeichen lang |
char *b = strchr ( char *a , char c ) |
Es wird String a nach dem Buchstaben c durchsucht und
ein Zeiger auf die Stelle in a nach b zurückgegeben,
an der sich der Buchstabe c zuerst befindet.
Existiert kein Buchstabe, so wird ein NULL zurückgegeben.
Folgendes Beispielprogramm
char *a ="C macht Spasz";
printf ("%s" , strchr (a , 'S') ); |
Spasz |
char *b = strrchr ( char *a , char c ) |
Es wird String a nach dem Buchstaben c durchsucht und
ein Zeiger auf die Stelle in a nach b zurückgegeben,
an der sich der Buchstabe c zuletzt befindet.
Existiert kein Buchstabe, so wird ein NULL zurückgegeben.
Folgendes Beispielprogramm
char *a ="C macht Spasz, riesig Spasz";
printf ("%s" , strrchr (a , 'S') ); |
Spasz |
...das Obligatorische |
Autor: Sebastian Cyris PCDBascht@aol.com
Dieser C-Kurs dient nur zu Lehrzwecken! Eine Vervielfältigung ist ohne vorherige Absprache mit dem Autor verboten! Die verwendete Software unterliegt der GPL und unterliegt der Software beiliegenden Bestimmungen zu deren Nutzung! Jede weitere Lizenzbestimmung die der benutzten Software beiliegt, ist zu beachten!