Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C++-strings

C++ biedt de volgende twee soorten tekenreeksrepresentaties −

  • De tekenreeks in C-stijl.
  • Het type tekenreeksklasse geïntroduceerd met Standard C++.

De tekenreeks in C-stijl

De tekenreeks in C-stijl is ontstaan ​​in de C-taal en wordt nog steeds ondersteund in C++. Deze string is eigenlijk een eendimensionale reeks karakters die wordt afgesloten met een null teken '\0'. Een null-terminated string bevat dus de tekens waaruit de string bestaat, gevolgd door een null .

De volgende declaratie en initialisatie creëren een string die bestaat uit het woord "Hallo". Om het null-teken aan het einde van de array vast te houden, is de grootte van de tekenarray die de tekenreeks bevat één meer dan het aantal tekens in het woord 'Hallo'.

char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

Als u de regel van array-initialisatie volgt, kunt u de bovenstaande verklaring als volgt schrijven −

char greeting[] = "Hello";

Hieronder volgt de geheugenpresentatie van de hierboven gedefinieerde string in C/C++ −

Eigenlijk plaats je het null-teken niet aan het einde van een stringconstante. De C++-compiler plaatst automatisch de '\0' aan het einde van de tekenreeks wanneer de array wordt geïnitialiseerd. Laten we proberen de bovengenoemde string af te drukken −

Live demo
#include <iostream>

using namespace std;

int main () {

   char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};

   cout << "Greeting message: ";
   cout << greeting << endl;

   return 0;
}

Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, levert dit het volgende resultaat op −

Greeting message: Hello

C++ ondersteunt een breed scala aan functies die op nul eindigende tekenreeksen manipuleren −

Zr.Nee Functie en doel
1

strcpy(s1, s2);

Kopieert string s2 naar string s1.

2

strcat(s1, s2);

Voegt string s2 samen met het einde van string s1.

3

strlen(s1);

Retourneert de lengte van tekenreeks s1.

4

strcmp(s1, s2);

Retourneert 0 als s1 en s2 hetzelfde zijn; kleiner dan 0 als s1s2.

5

strchr(s1, ch);

Geeft een pointer terug naar het eerste voorkomen van karakter ch in string s1.

6

strstr(s1, s2);

Retourneert een aanwijzer naar het eerste voorkomen van tekenreeks s2 in tekenreeks s1.

Het volgende voorbeeld maakt gebruik van enkele van de bovengenoemde functies −

Live demo
#include <iostream>
#include <cstring>

using namespace std;

int main () {

   char str1[10] = "Hello";
   char str2[10] = "World";
   char str3[10];
   int  len ;

   // copy str1 into str3
   strcpy( str3, str1);
   cout << "strcpy( str3, str1) : " << str3 << endl;

   // concatenates str1 and str2
   strcat( str1, str2);
   cout << "strcat( str1, str2): " << str1 << endl;

   // total lenghth of str1 after concatenation
   len = strlen(str1);
   cout << "strlen(str1) : " << len << endl;

   return 0;
}

Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, levert dit het volgende resultaat op −

strcpy( str3, str1) : Hello
strcat( str1, str2): HelloWorld
strlen(str1) : 10

De String-klasse in C++

De standaard C++-bibliotheek biedt een string class-type dat alle bovengenoemde bewerkingen ondersteunt, bovendien veel meer functionaliteit. Laten we het volgende voorbeeld eens bekijken −

Live demo
#include <iostream>
#include <string>

using namespace std;

int main () {

   string str1 = "Hello";
   string str2 = "World";
   string str3;
   int  len ;

   // copy str1 into str3
   str3 = str1;
   cout << "str3 : " << str3 << endl;

   // concatenates str1 and str2
   str3 = str1 + str2;
   cout << "str1 + str2 : " << str3 << endl;

   // total length of str3 after concatenation
   len = str3.size();
   cout << "str3.size() :  " << len << endl;

   return 0;
}

Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, levert dit het volgende resultaat op −

str3 : Hello
str1 + str2 : HelloWorld
str3.size() :  10

C Taal

  1. C#-tekenreeks
  2. C++-operators
  3. C++ Opmerkingen
  4. C++-klassesjablonen
  5. Java-strings
  6. Java enum Strings
  7. C++ variabelen en typen:int, double, char, string, bool
  8. C++ Strings:strcpy(), strcat(), strlen(), strcmp() VOORBEELDEN
  9. Strings in C:variabele declareren, initialiseren, afdrukken, voorbeeld
  10. Java - Strings-klasse
  11. C++-overzicht