Strings in C:Variable deklarieren, initialisieren, drucken, Beispiel
Was ist String in C?
Ein String in C ist nichts anderes als eine Ansammlung von Zeichen in einer linearen Folge. 'C' behandelt eine Zeichenfolge immer als einzelne Daten, obwohl sie Leerzeichen enthält. Ein einzelnes Zeichen wird durch einfache Anführungszeichendarstellung definiert. Eine Zeichenfolge wird durch doppelte Anführungszeichen dargestellt.
Example, "Welcome to the world of programming!"
‚C‘ stellt eine Standardbibliothek
In diesem Tutorial lernen Sie-
- Wie man einen String in C deklariert und initialisiert
- String-Eingabe:Liest einen String
- String-Ausgabe:Einen String drucken/anzeigen
- fputs()-Funktion
- puts-Funktion
- Die Zeichenfolgenbibliothek
- Einen String in eine Zahl umwandeln
Wie man einen String in C deklariert und initialisiert
Ein C-String ist ein einfaches Array mit char als Datentyp. Die Sprache „C“ unterstützt Zeichenfolgen nicht direkt als Datentyp. Um einen String in C anzuzeigen, müssen Sie daher ein Zeichenarray verwenden.
Die allgemeine Syntax zum Deklarieren einer Variablen als String in C lautet wie folgt:
char string_variable_name [array_size];
Die klassische Deklaration von Strings kann wie folgt erfolgen:
char string_name[string_length] = "string";
Die Größe eines Arrays muss beim Deklarieren einer C-String-Variablen definiert werden, da sie verwendet wird, um zu berechnen, wie viele Zeichen in der String-Variablen in C gespeichert werden. Einige gültige Beispiele für die Deklaration von Strings sind wie folgt:
char first_name[15]; //declaration of a string variable char last_name[15];
Das obige Beispiel stellt String-Variablen mit einer Array-Größe von 15 dar. Das bedeutet, dass das gegebene C-String-Array maximal 15 Zeichen aufnehmen kann. Die Indizierung des Arrays beginnt bei 0, daher werden Zeichen von einer Position von 0 bis 14 gespeichert. Der C-Compiler fügt dem erstellten Zeichenarray automatisch ein NULL-Zeichen „\0“ hinzu.
Lassen Sie uns die String-Initialisierung in C untersuchen. Das folgende Beispiel zeigt die Initialisierung von Strings in C,
char first_name[15] = "ANTHONY"; char first_name[15] = {'A','N','T','H','O','N','Y','\0'}; // NULL character '\0' is required at end in this declaration char string1 [6] = "hello";/* string size = 'h'+'e'+'l'+'l'+'o'+"NULL" = 6 */ char string2 [ ] = "world"; /* string size = 'w'+'o'+'r'+'l'+'d'+"NULL" = 6 */ char string3[6] = {'h', 'e', 'l', 'l', 'o', '\0'} ; /*Declaration as set of characters ,Size 6*/
In string3 muss das NULL-Zeichen explizit hinzugefügt werden, und die Zeichen werden in einfache Anführungszeichen gesetzt.
‘C’ erlaubt uns auch, eine String-Variable zu initialisieren, ohne die Größe des Zeichen-Arrays zu definieren. Dies kann auf folgende Weise erfolgen,
char first_name[ ] = "NATHAN";
Der Name von Strings in C fungiert als Zeiger, da es sich im Grunde um ein Array handelt.
String-Eingabe:Liest einen String
Beim Schreiben interaktiver Programme, die den Benutzer um Eingaben bitten, stellt C die Funktionen scanf(), gets() und fgets() bereit, um eine vom Benutzer eingegebene Textzeile zu finden.
Wenn wir scanf() zum Lesen verwenden, verwenden wir den „%s“-Formatbezeichner, ohne das „&“ zu verwenden, um auf die Variablenadresse zuzugreifen, da ein Array-Name als Zeiger fungiert. Zum Beispiel:
#include <stdio.h> int main() { char name[10]; int age; printf("Enter your first name and age: \n"); scanf("%s %d", name, &age); printf("You entered: %s %d",name,age); }
Ausgabe:
Enter your first name and age: John_Smith 48
Das Problem mit der scanf-Funktion ist, dass sie niemals ganze Strings in C liest. Sie stoppt den Lesevorgang, sobald Leerzeichen, Seitenvorschub, vertikaler Tabulator, Zeilenumbruch oder ein Wagenrücklauf auftreten. Angenommen, wir geben Eingaben als „Guru99 Tutorials“ ein, dann liest die scanf-Funktion niemals eine ganze Zeichenfolge, da zwischen den beiden Namen ein Leerzeichen steht. Die Funktion scanf liest nur Guru99.
Um zu lesen, dass ein String Leerzeichen enthält, verwenden wir die Funktion gets(). Gets ignoriert die Leerzeichen. Es hört auf zu lesen, wenn ein Zeilenumbruch erreicht ist (die Eingabetaste wird gedrückt). Zum Beispiel:
#include <stdio.h> int main() { char full_name[25]; printf("Enter your full name: "); gets(full_name); printf("My full name is %s ",full_name); return 0; }
Ausgabe:
Enter your full name: Dennis Ritchie My full name is Dennis Ritchie
Eine weitere sicherere Alternative zu gets() ist die Funktion fgets(), die eine bestimmte Anzahl von Zeichen liest. Zum Beispiel:
#include <stdio.h> int main() { char name[10]; printf("Enter your name plz: "); fgets(name, 10, stdin); printf("My name is %s ",name); return 0;}
Ausgabe:
Enter your name plz: Carlos My name is Carlos
Die fgets()-Argumente sind:
- der Zeichenfolgenname,
- die Anzahl der zu lesenden Zeichen
- stdin bedeutet, von der Standardeingabe, also der Tastatur, zu lesen.
String-Ausgabe:Einen String drucken/anzeigen
Die Standardfunktion printf wird zum Drucken oder Anzeigen von Strings in C auf einem Ausgabegerät verwendet. Der verwendete Formatbezeichner ist %s
Beispiel,
printf("%s", name);
Die Ausgabe von Strings erfolgt mit den Funktionen fputs() und printf().
fputs()-Funktion
fputs() benötigt den Namen des Strings und einen Zeiger auf die Stelle, an der der Text angezeigt werden soll. Wir verwenden stdout, das sich auf die Standardausgabe bezieht, um auf dem Bildschirm zu drucken. Zum Beispiel:
#include <stdio.h> int main() {char town[40]; printf("Enter your town: "); gets(town); fputs(town, stdout); return 0;}
Ausgabe:
Enter your town: New York New York
puts-Funktion
Die Funktion puts wird verwendet, um eine Zeichenfolge in C auf einem Ausgabegerät auszugeben und den Cursor zurück an die erste Position zu bewegen. Eine Puts-Funktion kann folgendermaßen verwendet werden:
#include <stdio.h> int main() { char name[15]; gets(name); //reads a string puts(name); //displays a string return 0;}
Die Syntax dieser Funktion ist vergleichsweise einfach als andere Funktionen.
Die String-Bibliothek
Die Standard-'C'-Bibliothek bietet verschiedene Funktionen, um die Zeichenketten innerhalb eines Programms zu manipulieren. Diese Funktionen werden auch als String-Handler bezeichnet. Alle diese Handler sind in der Header-Datei
Betrachten wir das folgende Programm, das die Funktionen der Stringbibliothek demonstriert:
#include <stdio.h> #include <string.h> int main () { //string initialization char string1[15]="Hello"; char string2[15]=" World!"; char string3[15]; int val; //string comparison val= strcmp(string1,string2); if(val==0){ printf("Strings are equal\n"); } else{ printf("Strings are not equal\n"); } //string concatenation printf("Concatenated string:%s",strcat(string1,string2)); //string1 contains hello world! //string length printf("\nLength of first string:%d",strlen(string1)); printf("\nLength of second string:%d",strlen(string2)); //string copy printf("\nCopied string is:%s\n",strcpy(string3,string1)); //string1 is copied into string3 return 0; }
Ausgabe:
Strings are not equal Concatenated string:Hello World! Length of first string:12 Length of second string:7 Copied string is:Hello World!
Weitere wichtige Bibliotheksfunktionen sind:
- strncmp(str1, str2, n):gibt 0 zurück, wenn die ersten n Zeichen von str1 gleich den ersten n Zeichen von str2 sind, kleiner als 0, wenn str1
str2. - strncpy(str1, str2, n) Diese Funktion wird verwendet, um einen String aus einem anderen String zu kopieren. Kopiert die ersten n Zeichen von str2 nach str1
- strchr(str1, c):gibt einen Zeiger auf das erste Vorkommen von char c in str1 zurück, oder NULL, wenn das Zeichen nicht gefunden wird.
- strrchr(str1, c):Es durchsucht str1 umgekehrt und gibt einen Zeiger auf die Position von char c in str1 zurück, oder NULL, wenn das Zeichen nicht gefunden wird.
- strstr(str1, str2):gibt einen Zeiger auf das erste Vorkommen von str2 in str1 zurück, oder NULL, wenn str2 nicht gefunden wird.
- strncat(str1, str2, n) Hängt (verkettet) die ersten n Zeichen von str2 an das Ende von str1 an und gibt einen Zeiger auf str1 zurück.
- strlwr() :um String in Kleinbuchstaben umzuwandeln
- strupr() :um String in Großbuchstaben umzuwandeln
- strrev() :Um den String umzukehren
Einen String in eine Zahl umwandeln
Bei der C-Programmierung können wir eine Zeichenfolge aus numerischen Zeichen in einen numerischen Wert konvertieren, um einen Laufzeitfehler zu verhindern. Die Bibliothek stdio.h enthält die folgenden Funktionen zum Konvertieren eines Strings in eine Zahl:
- int atoi(str) Steht für ASCII zu Integer; es wandelt str in den entsprechenden int-Wert um. 0 wird zurückgegeben, wenn das erste Zeichen keine Zahl ist oder keine Zahlen gefunden werden.
- double atof(str) Steht für ASCII to Float, es wandelt str in den äquivalenten Double-Wert um. 0.0 wird zurückgegeben, wenn das erste Zeichen keine Zahl ist oder keine Zahlen gefunden werden.
- long int atol(str) Steht für ASCII to long int, Konvertiert str in den äquivalenten Long-Integer-Wert. 0 wird zurückgegeben, wenn das erste Zeichen keine Zahl ist oder keine Zahlen gefunden werden.
Das folgende Programm demonstriert die atoi()-Funktion:
#include <stdio.h> int main() {char *string_id[10]; int ID; printf("Enter a number: "); gets(string_id); ID = atoi(string_id); printf("you enter %d ",ID); return 0;}
Ausgabe:
Enter a number: 221348 you enter 221348
- Eine String-Zeiger-Deklaration wie char *string =„Sprache“ ist eine Konstante und kann nicht geändert werden.
Zusammenfassung
- Ein String ist eine Folge von Zeichen, die in einem Zeichen-Array gespeichert ist.
- Ein String ist ein in doppelte Anführungszeichen eingeschlossener Text.
- Ein Zeichen wie „d“ ist keine Zeichenfolge und wird durch einfache Anführungszeichen gekennzeichnet.
- ‚C‘ stellt Standard-Bibliotheksfunktionen bereit, um Zeichenketten in einem Programm zu manipulieren. Zeichenketten-Manipulatoren werden in der
-Header-Datei gespeichert. - Ein String muss deklariert oder initialisiert werden, bevor er in einem Programm verwendet werden kann.
- Es gibt verschiedene Input- und Output-String-Funktionen, jede davon hat ihre eigenen Eigenschaften.
- Vergessen Sie nicht, die String-Bibliothek einzubinden, um mit ihren Funktionen zu arbeiten
- Wir können Strings durch atoi(), atof() und atol() in Zahlen umwandeln, die sehr nützlich für Codierungs- und Decodierungsprozesse sind.
- Wir können verschiedene Strings manipulieren, indem wir ein Array von Strings in C definieren.
C Sprache
- Java-Strings
- Java-Enum-Strings
- So erstellen Sie eine Liste von Zeichenfolgen in VHDL
- Arrays in C++ | Erklären | Initialisieren | Zeiger auf Array-Beispiele
- C++ Strings:strcpy(), strcat(), strlen(), strcmp() BEISPIELE
- realloc()-Funktion in der C-Bibliothek:Wie verwenden? Syntax &Beispiel
- free()-Funktion in der C-Bibliothek:Wie verwenden? Lernen Sie mit Beispiel
- String Length() Methode in Java:So finden Sie mit Beispiel
- Python-Strings:Ersetzen, Verbinden, Teilen, Umkehren, Groß- und Kleinbuchstaben
- Java - Strings-Klasse