6. Bearbeitung von Strings in C Bearbeitung von Strings in C

Ähnliche Dokumente
Arrays (Felder/Vektoren)

Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1

Zeichenketten (Strings)

GI Vektoren

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch

4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C

Programmiersprachen Einführung in C

Zeichenketten (1) Literale von Zeichenketten werden in doppelte Anführungszeichen gesetzt

Datei: svn/ckurs/trunk/c_texte/c_arrptr.txt, Datum: 30. Juni Felder und Zeiger

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff

Teil 5: Zeiger, Felder, Zeichenketten Gliederung

Zeichenketten sind uns bisher nur als konstante Texte begegnet, welche in "" angegeben waren; z.b. als Formatstring in der printf()-funktion:

Rechenzentrum. Programmieren in C. Simone Knief Rechenzentrum der CAU

einlesen n > 0? Ausgabe Negative Zahl

Algorithmen und Datenstrukturen

Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber

Zusammenfassung des Handzettels für Programmieren in C

Felder, Rückblick Mehrdimensionale Felder. Programmieren in C

FH München, FB 03 FA WS 06/07. Ingenieurinformatik. Name Vorname Matrikelnummer Sem.Gr.: Hörsaal Platz

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Kapitel 7. Zusammengesetzte Datentypen, Vektoren, Zeichenketten

Dr. Monika Meiler. Inhalt

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente

1. Definition. 2. Interne Speicherung der Zeichenketten. 3. Vereinbarung von Zeichenketten

Vektoren 105. array-qualifier static restrict const volatile array-size-expression assignment-expression * simple-declarator identifier

Arrays,Strings&Pointer in C/C++

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

C- Kurs 03 Ausdrücke und Operatoren

Übersicht. Informatik 1 Teil 9: komplexe Datentypen (Strukturen, Enumerationen, Unions)

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes

Felder, Zeiger und Adreßrechnung

Organisatorisches. Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Definition Datenstruktur. Nächste Woche keine Vorlesung!

F Zeiger, Felder und Strukturen in C

Zeichenketten (Strings) in C

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 23

3. Einführung in C Programmierung Einführung in C Programmierung

Elementare Datentypen in C++

Inhalt. Zeichen und Zeichenketten (engl. Strings)

+ C - Array (Vektoren, Felder)

Programmieren in C. -- ALLE Programmiersprachen sind HÄSSLICH -- Deklaration: erst der Datentyp, dann der Variablenname. Semikolon am Ende.

Projekt 3 Variablen und Operatoren

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

Praxis der Programmierung

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

Programmierkurs C++ Datenstrukturen Seite 1

M. Graefenhan Übungen zu C. Blatt 3. Musterlösung

Felder. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Programmieren in C/C++ und MATLAB

Bereits behandelt: Einfache Datentypen / Variablen. Schleifen und Verzweigungen. Funktionen. Heute: Felder, Zeiger, Referenzen. Freispeicherverwaltung

Einstieg in die Informatik mit Java

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian

Lösung Übungszettel 6 Aufgabe 1-4

Einstieg in die Informatik mit Java

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Übersicht. Informatik 1 Teil 5: Felder und Zeichenketten

Bereits behandelt: Einfache Datentypen / Variablen. Schleifen und Verzweigungen. Funktionen. Heute: Felder, Zeiger, Referenzen. Freispeicherverwaltung

INE1 Mehr zu Funktionen Ausserdem: Strings (Saiten) Call by value, struct's Call by reference Array Parameter Strings und Stringfunktionen

Die Programmiersprache C99: Zusammenfassung

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Physische Datenstrukturen

Probeklausur: BTI2 / Programmieren I Prof. Dr. H. Herold Erlaubte Hilfsmittel: Vorlesungsmitschrift; C-Bücher

Felder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.

C Überlebenstraining

Inhalt. 4.7 Funktionen

BKTM - Programmieren leicht gemacht.

Klausur C-Programmierung / / Klingebiel / 60 Minuten / 60 Punkte

Kurze Einführung in die Programmiersprache C++ und in Root

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

2. Aufgabe (3 Punkte) Ergänzen Sie die leeren Zellen derart, dass sich in einer Zeile die selben Zahlenwerte ergeben.

Einstieg in die Informatik mit Java

Klausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 13. April 2007, Uhr Bearbeitungszeit: 105 Minuten

Einführung in die Programmiersprache C

10 Die Programmiersprache C99: Zusammenfassung

Einführung in die Programmiersprache C

1 Klassen anlegen und Objekte erzeugen

Informatik Repetitorium SS Volker Jaedicke

Einstieg in die Informatik mit Java

Modellierung und Programmierung

1 Klassen anlegen und Objekte erzeugen

Programmierung mit C Felder; Array

Einführung in die C-Programmierung

Welche Informatik-Kenntnisse bringen Sie mit?

Zusammengehörige Daten struct. Strukturierte Datentypen und Funktionszeiger. Zugriff auf struct-elemente. Variablendeklarationen mit struct

Institut für Programmierung und Reaktive Systeme. Java 3. Markus Reschke

2. Programmierung in C

2. Programmierung in C

Ein- und Ausgabe von Daten

Übungspaket 24 Zeichenketten

Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung.

Vorkurs Informatik WiSe 16/17

Programmieren in C. Die C-Standardbibliothek. Prof. Dr. Nikolaus Wulff

Die Programmiersprache C. 2. Strukturen, Felder und Funktionen

Die Programmiersprache C. 2. Strukturen, Felder und Funktionen

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Übungspaket 23 Mehrdimensionale Arrays

Tag 4 Repetitorium Informatik (Java)

Zeiger: Der Adressoperator &

Transkript:

Bearbeitung von Strings in C 6-1

Definition des String: 6. Bearbeitung von Strings in C Zeichenstrings werden als Felder von Zeichen abgespeichert: char <Feldname> [ <Länge> ] ; Wie die Daten (Zeichenfolge) in String abspeichern: 1) Wertzuweisung in der Definition (Definition mit Initialisierung): char str[n] = "Zeichenkette"; 2) Wertzuweisung durch Einlesen: scanf("%s",str); gets (str); 3) Wertzuweisung durch einfache Zuweisungsfunktion: strcpy(s 1,s 2 ); z. B. strcpy(str,"kette"); 6-2

Funktion zur Zeichenkonversion /* Programm C6_2a.c - Variante mit Funktions-Prototyp */ #include <stdio.h> /* E/A Bibliothek */ char upper (char); /* Funktions-Prototyp */ void main (void) { /* Hauptmodul */ char satz[80], SATZ[80]; /* Definition von Variablen */ int i = 0; printf ("\n\t\t Zeichenketteumwandlung \n\n"); /* Ausgabekopf */ printf ("\n Bitte die Zeichenkette eingeben : "); gets (satz); /* Eingabe von Zeichenkette */ while (satz[i]!= '\0') SATZ[i++] = upper (satz[i]); /* Umwandlung */ printf ("\n Konvertierte Zeichenkette: %s\n\n\n", SATZ); } char upper (char c) { /* Inhalt c in Großbuchstaben umwandeln */ if (c >= 'a' && c <= 'z') return (c - 'a' + 'A'); else return (c); } 6-3

Zeichenkettenfunktionen: 6. Bearbeitung von Strings in C 1) strcpy Kopieren einer Zeichenkette: strcpy (<Zeichenkette1>, <Zeichenkette2>); strcpy(str,"zeichenkette"); 2) strcat Verknüpfen von zwei Zeichenketten: strcat (<Zeichenkette1>, <Zeichenkette2>); strcpy(str2,"-fortsetzung"); strcat(str,str2); 6-4

3) strcmp Vergleichen von zwei Strings: strcmp (<Zeichenkette1>, <Zeichenkette2>); Die Funktion strcmp vergleicht <Zeichenkette1> mit <Zeichenkette2> und liefert folgende Werte zurück: < 0 wenn <Zeichenkette1> kleiner als <Zeichenkette2> ist, = 0 wenn <Zeichenkette1> gleich <Zeichenkette2> ist, > 0 wenn <Zeichenkette1> größer als <Zeichenkette2> ist. strcmp(str,str2); strcmp(str1,"kette"); 4) strlen Länge eines String: strlen (<Zeichenkette>); StringLaenge = strlen(str); 6-5

Ausgabe einer Zeichenkette: puts (<Zeichenkette>); puts("beliebiger Text"); puts(str); Umwandlungsfunktionen: atoi (<Zeichenkette>); ASCII nach integer itoa (<integer-zahl>, <Zeichenkette>); integer nach ASCII atof (<Zeichenkette>); ASCII nach double 6-6

double atof (char s[]) { double val, power; int i, sign; for (i=0; s[i]==' ' s[i]== '\n' s[i]=='\t'; i++) ; sign = 1; /* ^ Zwischenraum uebergehen */ if (s[i]=='+' s[i]== '-') /* Vorzeichen behandeln */ sign = (s[i++] == '+')? 1 : -1; for (val = 0; s[i] >= '0' && s[i] <= '9'; i++) val = 10 * val + s[i] - '0'; if (s[i] == '.') i++; for (power = 1; s[i] >= '0' && s[i] <= '9'; i++) { val = 10 * val + s[i] - '0'; power *= 10; } return (sign * val / power); } 6-7

Zusammenfassung (Felder und Strings) Zur Deklaration von Feldern benutzt C die eckigen Klammern [ ]. In diesen Klammern wird die Anzahl der Feldelemente angegeben. Alle Felder beginnen mit dem Index 0. Ein String ist ein char-feld, das durch eine binäre Null begrenzt ist. Der Platzhalter %s dient der Funktion printf zur Ausgabe von Zeichenketten. Die Feldgrenzen werden von C nicht geprüft. Sie sind als Programmierer dafür verantwortlich, daß jedes Feld groß genug für die Aufnahme aller Elemente ist. Durch das Überschreiten der Feldgrenzen können andere Variablen zerstört werden. Funktionen strlen, strcpy, strcat und strcmp gehören zur Gruppe der Zeichenkettenfunktionen. 6-8

Die Funktion itoa wandelt eine Ganzzahl in eine Zeichenkette um. Die Funktion atoi wandelt einen String in eine Ganzzahl um. Diese Zahl kann zu einer beliebigen Basis dargestellt werden. Bei mehrdimensionalen Feldern wird die Größe jeder weiteren Dimension in separaten eckigen Klammern angegeben. 6-9