GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux C-Programmier-Tutorial Teil 9:Strings

In dieser fortlaufenden Lernprogrammreihe zur C-Programmierung haben wir bereits das Konzept von Zeichenarrays angesprochen. Eng verwandt mit Zeichen-Arrays ist das Konzept der Strings, das wir hier besprechen werden.

Ein String unterscheidet sich von einem Zeichenarray in einem wesentlichen Bereich – er wird durch ein Nullzeichen '\0' abgeschlossen. In einem Zeichen-Array gibt es kein solches Abschlusszeichen. Der folgende Codeabschnitt zeigt einige Möglichkeiten, wie ein String definiert werden kann:

#include <stdio.h>

int main()
{
char str[] = "string";
char str1[] = {'s','t','r','i','n','g','\0'};
char str2[10] = "string";
char str3[10] = {'s','t','r','i','n','g','\0'};
char *str4 = "string";

printf("\n str=%s, str1=%s, str2=%s, str3=%s, and str4=%s", str, str1, str2, str3, str4);

return 0;
}

Eine Reihe von Zeichen in doppelten Anführungszeichen ist also eine Zeichenfolge (das abschließende Null-Zeichen ist dort implizit), und eine Reihe von Zeichen, die explizit mit einem \0-Zeichen endet, ist ebenfalls eine Zeichenfolge.

Die Ausgabe dieses Programms ist:

 str=string, str1=string, str2=string, str3=string, and str4=string

Denken Sie daran, dass Sie auf diese Weise keine Nicht-String-Zeichen-Arrays drucken können, da es dort kein abschließendes Null-Zeichen gibt, um das Ende des Arrays anzuzeigen. Hier ist ein Stück Code, der dies versucht:

#include <stdio.h>

int main()
{
char str[] = {'e','n','d'};
char c ='t';

printf("\n str=%s", str);

return 0;
}

Aber am Ende werden stattdessen Müllwerte ausgegeben:

str=end??

Genauso wie der Formatbezeichner %s in 'Printf' den Compiler anweist, Eingabevariablen als Zeichenfolgen zu behandeln, können Sie auch %s in der Funktion 'scanf' verwenden, um Zeichenfolgen als Eingabe vom Benutzer zu akzeptieren. Hier ist ein Beispiel:

#include <stdio.h>

int main()
{
char str[30];

printf("\n Enter a string with length less than 30 characters: ");
scanf("%s",str);

printf("\n str=%s", str);

return 0;
}

Es ist erwähnenswert, dass eine Folge von null oder mehr Zeichen, die von doppelten Anführungszeichen umgeben sind, als String-Konstante oder String-Literal bezeichnet wird. Das bedeutet, dass sowohl "howtoforge" als auch "" String-Konstanten oder String-Literale sind.

Sie können die Länge eines Strings mit der Standardfunktion strlen() ermitteln. Hier ist ein Beispiel:

#include <stdio.h>

int main()
{
char str[] = "howtoforge";

printf("\n Length of string 'howtoforge' is: %d", strlen(str));

return 0;
}

Die von diesem Programm erzeugte Ausgabe ist 10, was genau der Anzahl der Zeichen in 'howtoforge' entspricht, und daher seiner Länge.

Im weiteren Verlauf ist es wichtig zu bedenken, dass sich ein Zeichen in einfachen Anführungszeichen (wie „d“) und ein Zeichen in doppelten Anführungszeichen (wie „d“) voneinander unterscheiden. Während die erste eine Zeichenkonstante ist (die verwendet werden kann, um einen numerischen Wert des Zeichens im Zeichensatz der Maschine zu erzeugen), ist die zweite eine Zeichenfolge (was bedeutet, dass sie ein abschließendes \0-Zeichen enthält).

Lassen Sie uns zum Schluss kurz einen Blick darauf werfen, wie Strings als Argumente an Funktionen übergeben werden können.

#include <stdio.h>

void change_value(char s[])
{
s[0] = 'H';
s[5] = 'F';

printf("%s", s);

}

int main()
{
char str[] = "howtoforge";

change_value(str);

return 0;
}

Im obigen Programm wird also der Name des Arrays „str“ als Argument übergeben, da er sich auf die Basisadresse des Arrays bezieht. Die Deklaration für die Funktion „change_value“ ist so, dass sie ein Array als Eingabe erwartet. Hier ist die Ausgabe dieses Programms:

HowtoForge                                                                                                        

In diesem Tutorial haben wir also die Grundlagen von Zeichenfolgen besprochen, einschließlich ihrer Definition und Verwendung. Wir werden in kommenden Tutorials mehr über Strings erfahren, aber dieser Artikel sollte ausreichen, um Ihnen den Einstieg zu erleichtern. Teilen Sie uns unten in den Kommentaren mit, wenn Sie Fragen oder Zweifel zu Strings haben.


Linux
  1. C-Programmier-Tutorial Teil 3 - Grundlagen zu Variablen

  2. C-Programmier-Tutorial Teil 5 - Zeichenvariablen

  3. Linux C-Programmier-Tutorial Teil 10 - Variable Gültigkeitsbereiche

  4. Linux C-Programmier-Tutorial Teil 8 – Aufruf nach Wert vs. Aufruf nach Zeiger/Adresse

  5. Linux C-Programmier-Tutorial Teil 8 – Aufruf nach Wert vs. Aufruf nach Zeiger/Adresse

Beispiele für Linux-Curl-Befehle – Teil 2

Beispiele für Linux-Curl-Befehle – Teil 1

Bash Strings verketten

Linux-Strings-Befehls-Tutorial für Anfänger (5 Beispiele)

So verwenden Sie bash if -z und if -n zum Testen von Zeichenfolgen in Linux

Unter Linux ist alles eine Datei – Teil 2