Hallo und Willkommen. In dieser Vorlesung möchte ich über das Konvertieren von
Zeichenfolgen und einige weitere Zeichenfolgenfunktionen sprechen.
Es ist sehr üblich, die Groß- und Kleinschreibung von Zeichen zu konvertieren.
Wenn Sie Ihre Zeichenfolge in Großbuchstaben umwandeln möchten, gibt es
glücklicherweise zwei Funktionen in Großbuchstaben, die
von Kleinbuchstaben in Großbuchstaben konvertiert werden,
und zwei Funktionen in Kleinbuchstaben, die in Großbuchstaben
in Kleinbuchstaben konvertiert werden. Also Kleinbuchstaben nach Großbuchstaben, Großbuchstaben nach Kleinbuchstaben.
Beide Funktionen geben entweder das konvertierte Zeichen oder dasselbe
Zeichen für Zeichen zurück, die sich bereits im richtigen Fall befinden
oder nicht konvertierbar sind, z. B. Satzzeichen, wenn Sie sie nicht konvertieren können.
So können Sie eine Zeichenfolge in Großbuchstaben konvertieren.
Denken Sie daran, dass diese tatsächlich
zeichenweise verwendet werden.
Wenn Sie also einen Puffer hätten, der ein Zeichenarray
wäre, müssten Sie jedes Element im Puffer durchgehen und
dann zwei Zeichen für dieses Zeichen einfügen.
Hier gehen wir
also jedes Element in unserem Pufferzeichenarray durch und
übergeben es an die beiden oberen Methoden.
Und das wird einen Charakter zurückgeben, das ist ein Großbuchstabe und wir werden ihn unseren Buffs von zuweisen.
Wir werden das tun, bis wir
das Nullzeichen treffen. Das ist also eine vier Aussagen, die nur eine Zeile haben.
Dadurch wird die gesamte Zeichenfolge
in Großbuchstaben mit Pufferrate konvertiert, indem die Zeichenfolge zeichenweise durchlaufen wird.
Die Schleife stoppt, wenn sie das Zeichen für die Zeichenfolgenbeendigung, den Backslash Null, erreicht.
Die Umwandlung des Typs char ist vorhanden, da zwei obere Rückgaben vom Typ int vorliegen, bei denen es
sich um den ASCII-Wert handelt, und der nur konvertiert wird.
Und Sie würden das Gleiche tun, wenn Sie es in Kleinbuchstaben konvertieren möchten, wobei
die Konvertierungsfunktionen für Groß- und Kleinschreibung sehr einfach zu verwenden sind.
Sie können also die Funktion 2 Upper in Kombination mit der Funktion strstr verwenden, um herauszufinden,
ob eine Zeichenfolge in einer anderen vorkommt, ohne den Fall zu beachten.
Schauen wir uns also dieses Beispiel an, das genau das tut.
Hier haben wir zwei Zeichenarrays, Text und Teilzeichenfolge.
Text ist Größe hundert, Teilzeichenfolge ist Größe vierzig.
Wir bitten den Benutzer, eine zu durchsuchende Zeichenfolge mit weniger als hundert Zeichen einzugeben.
Wir bekommen das, wir speichern es im Text.
Und dann geben wir den String ein, den sie mit dem
strstr finden möchten, also den Teilstring, also geben sie einen anderen Teilstring ein.
Wir drucken dann die erste Zeichenfolge und dann die zweite Zeichenfolge.
Wir konvertieren dann beide Zeichenfolgen in Großbuchstaben.
Und dann können wir tatsächlich sagen, dass die zweite Zeichenfolge die erste Zeichenfolge gefunden hat.
Wenn wir also strstr aufrufen, kann die
Groß- und Kleinschreibung ignoriert werden. Denn denken Sie daran, eine der Einschränkungen von strstr war,
dass zwischen Groß- und Kleinschreibung unterschieden wurde.
Und jetzt können wir strstr für
Text und Teilzeichenfolgen verwenden, da sie alle Großbuchstaben sind.
Auf diese Weise können Sie erneut feststellen,
ob sich ein Teilstring in einem ganzen String befindet und den Fall ignoriert.
Zuerst konvertieren wir einfach alles in Großbuchstaben und jetzt vergleichen wir Großbuchstaben, und
genau das macht dieses Programm.
Es ist häufig der Fall, dass Sie Zeichenfolgen in Zahlen konvertieren möchten.
Es gibt also bestimmte Funktionen, die mit einem a beginnen.
Sie sind wie Atof, Atoi, Atol und Atoll.
Atoi sehr häufig, konvertiert eine Zeichenfolge in eine int.
Also wird atof einen String konvertieren und es
ist wie ASCII, ASCIItof. Es wird eine Zeichenfolge in einen Datentyp konvertieren.
Ein Atof ist also ein ASCII für einen Float oder ein Double für einen Float.
Und Sie können bestimmte Rückgabewerte haben. Wenn es nicht gefunden wird oder nicht kann.
Manchmal können Sie Zeichenfolgen nicht in Ganzzahlen konvertieren, insbesondere wenn Sie eine Zeichenfolge haben, die nur Wörter enthält.
Normalerweise verwenden Sie diese Funktion, wenn Sie im Beispiel haben.
Wenn Sie eine Zeichenfolge mit 98 haben. 4, die als Doppel dargestellt werden kann.
Sie können also einen Atof darauf machen. Wenn Sie eine Zeichenkette von Jason
haben, können Sie diese nicht in einen Floater
oder eine Ganzzahl umwandeln, sodass nichts passieren wird. Wenn Sie also Zeichenfolgen mit
Zahlen haben, können Sie diese mit diesen ASCIIto-Funktionen konvertieren.
Und das alles ist in der Standard-lib-Header-Datei enthalten.
Sie sehen auch das Gegenteil
beim Erstellen von Ganzzahlen zu Zeichenfolgen. Sie sehen Dinge wie itoa, das für ASCII int ist.
Wenn Sie eine Nummer 98 hätten und diese in eine Zeichenfolge konvertieren möchten, würden Sie itoa sagen.
Es gibt auch einige neuere Funktionen.
Diese sind speziell dafür gedacht, dass sich die
Zeichenfolge im Gegensatz zu atof verdoppelt.
Sie können diese
strtod oder strtof oder stringtold verwenden.
Und sie wandeln sich entweder in lange Doppelschwimmer oder in Schwimmerdoppel um.
Aber einer von ihnen ist in Ordnung. Die ASCII sind die traditionellen.
Ich denke, die anderen Strtods und Strtofs wurden in späteren Standards von c hinzugefügt.
Hier ist ein Beispiel für einige Konvertierungen.
Es ist sehr, sehr einfach. Hier haben wir ein str-Zeichenarray,
3. 5 Raum 2. 5 Leerzeichen 1. 26.
Wir haben ein paar Hinweise. Und wir gehen
durch, bis wir herausspringen, wenn wir es nicht konvertieren können.
Also sagen wir strtod. Wir übergeben unsere
Adresse unseres ptr, unseres Zeigers, und wir übergeben
unsere p-Zeichenfolge, die unsere Zeichenfolge ist,
3. 5 2. 5.
Jetzt können Sie sagen, warum Sie in der p str im Gegensatz zu nur der
str passieren und Sie müssen nicht. Aber hier wollen wir tatsächlich prüfen, ob
es keine Konvertierung gab.
Da wir also nach keiner Konvertierung suchen, müssen wir uns beide Zeiger ansehen.
Sie können den ptr nicht mit dem str vergleichen, da der str ein Array ist.
Also werden wir Stück pstr verwenden, um nur unser Zeichenarray darzustellen, damit wir vergleichen können.
Und wenn wir diese
beiden vergleichen, bedeutet dies, dass pstr keine Konvertierung gespeichert hat,
und damit sind wir fertig. Wir konnten diesen Wert nicht konvertieren.
Wenn wir den Wert sonst konvertieren könnten, würden wir ihn nur
ausdrucken und dann die nächste Konvertierung durchführen. Pstar wird gleich Zeiger sein.
Sie können dies also ausführen und sehen, dass
am Ende alles im String-Array in bestimmte Werte konvertiert
wird. Doppelte, doppelte Werte.
Normalerweise benutze ich atoi, atof, aber eines
davon wird funktionieren.
Dies sind die Konvertierungsfunktionen. Vielen Dank.