Wie Text im Programm gehalten
wird
In C sind Zeichenketten Reihungen vom Typ char
Am Ende dieser Reihungen befindet sich binär Null '\0' Beispiel
Noch ein Beispiel
char s[]= "XYZ";
char *p = "Aktenzeichen ungeloest";
‘A’ ‘k’ ‘t’ ‘e’ ‘t’‘\0’
22 23 p
…
char s[] = "XYZ";
char *p = ", Aktenzeichen ungeloest";
int main() {
char *q = "Beckstein sorgt fuer";
char *r = " Eure Sicherheit";
printf("\n %s %s %s \n %s \n“, s,p,q,r);
for (p = q; *q != '\0'; ++q)
*q += 1;
printf("\n%s\n\n“, p);
return 0;
}
Möglichkeit 1: Initialisierung, z.B.
Möglichkeit 2: Dynamische Zuteilung, z.B.
char *s = "Madame Blavatsky";
char *s;
s = (char *)malloc(17);
Mit include -Datei string.h Folgende sind am wichtigsten
int strcmp(char *s1, char *s2);
ist negativ, 0 oder positiv, je
nachdem, ob s1 lexikographisch kleiner als s2 ist oder nicht
int strlen(char *s);
liefert die
Anzahl von Zeichen in s zurück
char *strcat(char *s1, char *s2);
hängt eine Kopie von s2 am Ende von s1 an. Rückgabewert: s1
char *strcpy(char* s1, char *s2);
kopiert s1 über s2 .
!
#include <stdio.h>
#define MAXSTR 50
#ifndef MYSTRING
#include <string.h>
#else
char * strcpy(char *str1, char
*str2) {
char *temp = str2; int i;
for (i = 0; *temp != '\0'; temp++)
*(str1+i++) = *temp;
str1[i] = '\0';
return str1;
}
#endif
"
int main() {
char *s = "Gautama Sakyamuni";
char t[MAXSTR],*wo;
wo = strcpy(t,s);
#ifdef MYSTRING
printf("\Wir haben MYSTRING! %s %s\n", s,t);
#else
printf("\nStandard C: %s %s\n", s,t);