Buchstabe Reihen
Eine Zeichenkettekonstante, wie
"I am a string"
ist eine Reihe Buchstaben. Sie wird innerlich in C durch die ASCII Buchstaben in der Zeichenkette dargestellt, können d.h. „I“, freier Raum, „a“, „m“,… oder die oben genannte Zeichenkette und beendet durch spezielle Nullzeichen„\ 0“ also Programme das Ende der Zeichenkette finden.
Zeichenkettekonstanten sind häufig benutzt, wenn sie den Ausgang Code des verständlichen verwendenden printf bilden:
printf("Hello, world\n");
printf("The value of a is: %f\n", a);
Zeichenkettekonstanten können mit Variablen verbunden sein. C liefert den Schrifttyp Variable, der einen Buchstaben (1 Byte) auf einmal enthalten kann. Eine Zeichenfolge wird in einer Reihe Schrifttyp, ein ASCII Buchstabe pro Position gespeichert.
Nie vergessen, daß, da Zeichenketten herkömmlich durch Nullzeichen„\ 0“ beendet werden, wir eine Extraspeicherposition in der Reihe benötigen.
C liefert keinen Operator, der gesamte Zeichenketten sofort manipuliert. Zeichenketten werden entweder über Zeiger oder über die speziellen Programme manipuliert, die von der Standardzeichenkettebibliothek string.h. vorhanden sind.
Buchstabe Zeiger zu verwenden ist verhältnismäßig einfach, da der Name einer Reihe ein Zeiger zu seinem ersten Element ein gerechtes ist. Das Programm betrachten zunächst gegeben:
#include<stdio.h>
void main()
{
char text_1[100], text_2[100], text_3[100];
char *ta, *tb;
int i;
/* Anzeige einstellen, um ein arrray zu sein */
/* von den Buchstaben; ihn initialisieren */
/* zur konstanten Zeichenkette „…“ */
/* den Compiler an entscheiden lassen */
/* seine Größe durch das Verwenden [] */
char message[] = "Hello, I am a string; what are
you?";
printf("Original message: %s\n", message);
/* die Anzeige zu text_1 kopieren */
i=0;
while ( (text_1[i] = message[i]) != '\0' )
i++;
printf("Text_1: %s\n", text_1);
/* ausdrückliche Zeigerarithmetik verwenden */
ta=message;
tb=text_2;
while ( ( *tb++ = *ta++ ) != '\0' )
;
printf("Text_2: %s\n", text_2);
}
Der Ausgang des Programms ist, wie folgt:
Original message: Hello, I am a string; what are you?
Text_1: Hello, I am a string; what are you?
Text_2: Hello, I am a string; what are you? |
Die Standard„Zeichenkette“ Bibliothek enthält viele nützliche Funktionen, um Zeichenketten zu manipulieren, die wir im Zeichenketteabschnitt später erlernen.
|