codestory

Die Anleitung zu C/C++ string

  1. C-Style String
  2. C++ Style String

1. C-Style String

String
Im C++ gibt es 2 Typen vom String, ein C-style string und ein (C++-Style string).
C-Style string ist wirklich ein Zeichenarray, aber es gibt einige verschiedenen Funktionen, die für String benutzt werden, zum Beispiel in String einfügen, nach der Länge des String suchen und die Funktionen prüft die Angemessenheit von String mit einer ordentlichen Ausdruck (regular expression)
Die Definition eines String ist eine Dinge, die mehr als einen Zeichen verbindend miteinander enthaltet. Zum Beispiel "this" ist ein String. Allerdings ist ein einzelnes Zeichen gilt als nicht ein String. Obwohl sie wird wie ein String benutzt
String ist ein Zeichenarray. Benutzen Sie die Anführungszeichen um ein Buchstabestring zu markieren (string literals)
// Declare a C-Style String.
char mystring[] = { 't', 'h', 'i', 's', ' ', 'i', 's' ,' ', 't', 'e', 'x', 't', '\0'};

// This is a string literal.
char mystring[] = "this is text'';
StringLiteralExample.cpp
#include <stdio.h>

int main() {

   // Declare a String literal.
   char s1[] = "What is this";

   // Print out the string
   printf("Your string = %s", s1);

   fflush(stdout);

   return 0;
}
Das Ergebnis der Beispieldurchführung
  • char mystr[] = "what is this";
Das oben String hat 12 Zeichen. Um das String im C zu melden, sollen Sie ein Zeichenarray mit 13 Elemente melden. Erinern Sie sich, wenn die letzte Element des Array null (die Codeist '\0') ist, bedeutet das die Ende des string. Das letzte Zeichen hat keine Bedeutung in Ihrem String, aber es ist notwendig für C, z.B der Anzeiger (pointer) zeigt eine Position des String. Er wird in die Stelle von dem ersten Zeichen stehen und wenn Sie die Inhalt des String nehmen möchten, wird das Programm die nächsten Elemente bis zum Treffen des null Elemente browsen
Im diesem Fall haben Sie ein Zeichenarray, von dem Null-zeichenelementen liegt nicht am Ende des Arrays oder es viele null Elemente im Array gibt. Allerdings sieht C nur, dass das Array ein String enthaltet, einschließend die ersten Zeichen bis zum ersten null Zeichen im Array.
Das folgende Beispiel meldet ein Zeichenarray mit 100 Elemente um die von dem Benutzer getypten Text zu speichern. In diesem Fall wird die Zeichen des Inputstring für die erste Elemente des Array und dann das Null Zeichen zugewiesen. Und die nächsten Elemente können nicht zugwiesen werden
StringFromKeyboardExample.cpp
#include <stdio.h>

int main() {

   // Declare an array of characters with 100 elements,
   // used to store user input string from the keyboard.
   char s1[100];

   printf("Enter your string: \n");
   fflush(stdout);

   // scanf function wait user input from the keyboard.
   // (Press enter to end).
   // It will scan to get a string and assigned to the variable s1.
   // (%s: scan a string does not contain spaces)
   scanf("%s", s1);

   printf("Your string = %s", s1);

   fflush(stdout);

   return 0;
}
Das Ergebnis der Beispieldurchführung
Die Funktion für C-style String
C bietet einige Funktion um mit String zu arbeiten. Sie liegt in der Standardbibliothek <string.h>. Unten listiere ich einige üblichen Funktionen vom C über String (nicht alles)
Einige Funktion für String.
Der Name der Funktion
Die Bezeichnung
size_t strlen(const char *str)
Die Länge des String kalkulieren, aber das Endezeichen nicht kalkulieren (null Zeichen)
char *strcpy(char *dest, const char *src)
String 'src' zu 'dest' kopieren.
int strcmp(const char *str1, const char *str2)
Der Vergleich zwischen 2 String str1 und Str2. Wenn das Ergebnis eine ganze Zahl > 0 ist, bedeutet das str1 > str2. Und das Ergebnis = 0, d.h 2 String gleich sind, und umgekehrt ist str1 < str2.
char *strcat(char *dest, const char *src)
Appends the string pointed to by src to the end of the string pointed to by dest.
char *strchr(const char *str, int c)
Searches for the first occurrence of the character c (an unsigned char) in the string pointed to by the argument str.
StringFunctionsExample.cpp
#include <stdio.h>

// Using string library.
#include <string.h>

int main() {

   // Declare a string literal.
   char s1[] = "This is ";

   // Declare a C-Style string
   // (With null character at the end).
   char s2[] = { 't', 'e', 'x', 't', '\0' };

   // Function: size_t strlen(const char *str)
   // strlen funtion return length of the string.
   // site_t: is unsigned integer data type.
   size_t len1 = strlen(s1);
   size_t len2 = strlen(s2);

   printf("Length of s1 = %d \n", len1);
   printf("Length of s2 = %d \n", len2);

   // Declare an array with 100 elements.
   char mystr[100];

   // Function: char *strcpy(char *dest, const char *src)
   // copy s1 to mystr.
   strcpy(mystr, s1);

   // Function: char *strcat(char *dest, const char *src)
   // Using strcat function to concatenate two strings
   strcat(mystr, s2);

   // Print out content of mystr.
   printf("Your string = %s", mystr);

   fflush(stdout);

   return 0;

}
Das Ergebnis der Beispieldurchführung

2. C++ Style String

C++ bietet Ihnen die Klasse von string, Es hilft Ihnen bei dem einfacher Umgang mit dem String. Die Methode, die die Klasse String bietet, unterstützt noch die C-Style string.
Die Bibliothek String melden
Um string zu benutzen, sollen SiePreprocessor Directives#include <string> melden und die Benutzung der namespace std melden
// Declare Preprocessor Directives

#include <string>

// Declare to use the namespace std.

using namespace std;
Die Meldung vom String
// Declare a string object.

string mystring = "Hello World";

// If you do not declare using namespace std.
// You must use the full name:

std::string mystring = "Hello World";
Die Methode des String
Unten ist die Liste der Methode vom String.