Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C Programmierstrings

C-Programmierstrings

In diesem Tutorial lernen Sie Strings in der C-Programmierung kennen. Sie lernen, sie zu deklarieren, zu initialisieren und anhand von Beispielen für verschiedene I/O-Operationen zu verwenden.

In der C-Programmierung ist ein String eine Folge von Zeichen, die mit einem Nullzeichen \0 abgeschlossen wird . Zum Beispiel:

char c[] = "c string";

Wenn der Compiler auf eine Folge von Zeichen stößt, die in doppelte Anführungszeichen eingeschlossen sind, hängt er ein Nullzeichen \0 an standardmäßig am Ende.


Wie deklariert man einen String?

So können Sie Strings deklarieren:

char s[5];

Hier haben wir eine Zeichenfolge von 5 Zeichen deklariert.


Wie werden Zeichenfolgen initialisiert?

Sie können Strings auf verschiedene Arten initialisieren.

char c[] = "abcd";

char c[50] = "abcd";

char c[] = {'a', 'b', 'c', 'd', '\0'};

char c[5] = {'a', 'b', 'c', 'd', '\0'};

Nehmen wir ein anderes Beispiel:

char c[5] = "abcde";

Hier versuchen wir 6 Zeichen zuzuweisen (das letzte Zeichen ist '\0' ) zu char Array mit 5 Zeichen. Das ist schlecht und Sie sollten dies niemals tun.


Strings Werte zuweisen

Arrays und Strings sind Bürger zweiter Klasse in C; Sie unterstützen den Zuweisungsoperator nicht, sobald er deklariert ist. Zum Beispiel

char c[100];
c = "C programming";  // Error! array type is not assignable.

Hinweis: Verwenden Sie stattdessen die Funktion strcpy(), um den String zu kopieren.


String vom Benutzer lesen

Sie können den scanf() verwenden Funktion zum Lesen einer Zeichenkette.

Die scanf() Die Funktion liest die Zeichenfolge, bis sie auf Leerzeichen (Leerzeichen, Zeilenumbruch, Tabulator usw.) trifft.


Beispiel 1:scanf() zum Lesen eines Strings

#include <stdio.h>
int main()
{
    char name[20];
    printf("Enter name: ");
    scanf("%s", name);
    printf("Your name is %s.", name);
    return 0;
}

Ausgabe

Enter name: Dennis Ritchie
Your name is Dennis.

Obwohl Dennis Ritchie wurde im obigen Programm nur "Dennis" eingetragen wurde im Namen gespeichert Schnur. Das liegt daran, dass nach Dennis ein Leerzeichen war .

Beachten Sie auch, dass wir den Code name verwendet haben statt &name mit scanf() .

scanf("%s", name);

Das liegt daran, dass name ist ein char array, und wir wissen, dass Array-Namen in C zu Zeigern zerfallen.

Daher der Name in scanf() zeigt bereits auf die Adresse des ersten Elements im String, weshalb wir & nicht verwenden müssen .


Wie liest man eine Textzeile?

Sie können den fgets() verwenden Funktion zum Lesen einer Zeichenfolge. Und Sie können puts() verwenden um die Zeichenkette anzuzeigen.


Beispiel 2:fgets() und puts()

#include <stdio.h>
int main()
{
    char name[30];
    printf("Enter name: ");
    fgets(name, sizeof(name), stdin);  // read string
    printf("Name: ");
    puts(name);    // display string
    return 0;
}

Ausgabe

Enter name: Tom Hanks
Name: Tom Hanks

Hier haben wir fgets() verwendet Funktion, um eine Zeichenfolge vom Benutzer zu lesen.

fgets(name, sizeof(name), stdlin); // read string

Die sizeof(name) ergibt 30. Daher können wir maximal 30 Zeichen als Eingabe nehmen, was der Länge des Namens entspricht Zeichenfolge.

Um den String zu drucken, haben wir puts(name); verwendet .

Hinweis: Die gets() Die Funktion kann auch darin bestehen, Eingaben vom Benutzer entgegenzunehmen. Es wird jedoch aus dem C-Standard entfernt.

Weil gets() ermöglicht die Eingabe beliebig langer Zeichen. Daher kann es zu einem Pufferüberlauf kommen.


Strings an Funktionen übergeben

Strings können ähnlich wie Arrays an eine Funktion übergeben werden. Erfahren Sie mehr über das Übergeben von Arrays an eine Funktion.


Beispiel 3:String an eine Funktion übergeben

#include <stdio.h>
void displayString(char str[]);

int main()
{
    char str[50];
    printf("Enter string: ");
    fgets(str, sizeof(str), stdin);             
    displayString(str);     // Passing string to a function.    
    return 0;
}
void displayString(char str[])
{
    printf("String Output: ");
    puts(str);
}

Strings und Zeiger

Ähnlich wie Arrays werden String-Namen zu Zeigern "zersetzt". Daher können Sie Zeiger verwenden, um Elemente der Zeichenfolge zu manipulieren. Wir empfehlen Ihnen, C-Arrays und -Zeiger zu überprüfen, bevor Sie dieses Beispiel überprüfen.


Beispiel 4:Zeichenketten und Zeiger

#include <stdio.h>

int main(void) {
  char name[] = "Harry Potter";

  printf("%c", *name);     // Output: H
  printf("%c", *(name+1));   // Output: a
  printf("%c", *(name+7));   // Output: o

  char *namePtr;

  namePtr = name;
  printf("%c", *namePtr);     // Output: H
  printf("%c", *(namePtr+1));   // Output: a
  printf("%c", *(namePtr+7));   // Output: o
}

Häufig verwendete Zeichenfolgenfunktionen

  • strlen() - berechnet die Länge eines Strings
  • strcpy() - kopiert einen String in einen anderen
  • strcmp() - vergleicht zwei Zeichenketten
  • strcat() - verkettet zwei Strings

C Sprache

  1. C#-String
  2. Namespaces in der C#-Programmierung
  3. Übergeben eines Arrays an eine Funktion in der C++-Programmierung
  4. Java-Strings
  5. Java-Enum-Strings
  6. C++ Strings:strcpy(), strcat(), strlen(), strcmp() BEISPIELE
  7. Strings in C:Variable deklarieren, initialisieren, drucken, Beispiel
  8. Python-Strings:Ersetzen, Verbinden, Teilen, Umkehren, Groß- und Kleinbuchstaben
  9. C-Tutorial
  10. Java - Strings-Klasse