Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier. Eine Zeichenkette ist eine Folge von Zeichen (Buchstaben Sonderzeichen Leerzeichen sind Zeichen) aus vorab definierten Zeichensatz . Zeichen können sich in einer Zeichenkette die Reihenfolge der Zeichen ist definiert.
Der String ist ein besondere Form Datentyp Array . Oft ist ein String als Array das Character (Zeichen von 0..255) enthalten kann.
Mit Zeichenkette wird in der Programmierung ebenfalls ein Datentyp bezeichnet der Zeichenketten (Texte) variabler Länge kann. Fast jede Programmiersprache besitzt einen derartigen meist wird er mit dem englischen Namen String bezeichnet.
Manche Programmiersprachen arbeiten ausschließlich mit diesem Beispiele sind sed awk und bash .
Eine Zeichenkette in C ist ein Array vom Typ char wobei die Zeichenkette als Endezeichen das NUL enthält. Deswegen heißen solche Zeichenketten auch NUL-terminiert . Da das NUL Zeichen selbst auch einen Speicherplatz benötigt den die Zeichenkette belegt der Speicherbedarf einer Zeichenkette immer mindestens 1 größer als die nutzbare Länge der Zeichenkette. "Länge der Zeichenkette" wird die Anzahl der vor dem Endezeichen bezeichnet. Sie wird von C-Funktion strlen() ermittelt.
Ein C-Programm definiert zwei Zeichenketten-Variablen mit Zeichen Länge und weist beiden den gleichen (Inhalt) zu: Um das NUL-Zeichen abzuspeichern muss Arrays mit 5 Zeichen deklarieren.
int main(int argc char** argv) { text1; char[5] text2;
Zu den häufigsten Fehlerquellen und damit der häufigsten Angriffsquelle auf Server zählen buffer overflows : Es wird versucht einer Zeichenkettenvariablen einen zuzuweisen dessen Länge die Länge der Variablen Dadurch werden andere benachbarte Variablen im Speicher Bei geschickter Ausnutzung dieses Effekts kann ein einem Server laufendes Programm manipuliert und für auf den Server mißbraucht werden. Zur sicheren sollten Zeichenketten-Operationen nur mit Funktionen durchgeführt werden denen die maximale Länge der Zeichenkette überprüft
In C wären das Funktionen wie strncpy() snprintf()... (anstelle von strcpy() sprints() ...)