• Keine Ergebnisse gefunden

Am Ende dieser Reihungen befindet sich binär Null '\0' Beispiel

N/A
N/A
Protected

Academic year: 2021

Aktie "Am Ende dieser Reihungen befindet sich binär Null '\0' Beispiel"

Copied!
11
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Wie Text im Programm gehalten

wird

(2)

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";

(3)

‘A’ ‘k’ ‘t’ ‘e’ ‘t’‘\0’

22 23 p

(4)

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;

}

(5)

Möglichkeit 1: Initialisierung, z.B.

Möglichkeit 2: Dynamische Zuteilung, z.B.

char *s = "Madame Blavatsky";

char *s;

s = (char *)malloc(17);

(6)

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

(7)

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 .

(8)

!

#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

(9)

"

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);

(10)

Bedingte Compilierung durch den Compilerflag

–D MYSTRING

Je nach Definition von

MYSTRING

wird die Standardfunktion

strcpy( )

aufgerufen oder die selbst

gestrickte mit dem gleichen Namen

(11)

# $

Immer feststellen, ob zugrund

liegende Zeiger bei Zeichenketten initialisiert werden oder nicht

Besser: Die C++ Standardklasse

string

Referenzen

ÄHNLICHE DOKUMENTE

Aufgabe: Schreibe eine Funktion search str(), die eine gegebene Zeichenkette (to- ken) in einer Tabelle (Array) von Zeichenketten sucht und

Aufgabe: Schreibe eine Funktion search str(), die eine gegebene Zeichenkette (to- ken) in einer Tabelle (Array) von Zeichenketten sucht und

läuft durch die array Elemente setzt das erste array Element auf 500 setzt das zweite array Element auf 1000 setzt das dritte array Element auf 3000. setzt das vierte

Ieber l3egriUe. Tstbedto- llowüel; Hendel5Ve.rhbr %Wisdlen dar Bundes:e.publlk und de.r TS&lt;hecboslowaket für die Zelt vom 1. I.. 5.2 Olfentlic:be Bekanntmachung

Oft ist zu dem Zeitpunkt, an dem ein Programm geschrieben wird, noch nicht klar, wieviele Daten zu verwalten sind: sollen 100 B¨ucher oder 1.000.000 B¨ucher gespeichert werden.. Da

void * malloc(size_t size) liefert Zeiger auf Speicherbereich der Gr¨oße size, oder NULL, wenn die Anfrage nicht erf¨ullt werden kann.. Der Bereich ist

Schreiben Sie eine Funktion, die einen gegebenen String kodiert, indem das Alphabet um n Stellen verschoben wird.. Beispiel: Wird das Alphabet um 2 Stellen verschoben, so wird aus

Another important mechanism for endothelin- induced blood pressure regulation may be the well- known renal effects of endothelin: dose-dependent.. decreases in