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:strcpy(), strcat(), strlen(), strcmp() VOORBEELDEN

Wat is een tekenreeks?

Een string is een opeenvolging van karakters. Een C++ string is een object van de std::string klasse. De tekens zijn opgeslagen reeksen bytes met toegang tot een enkele tekenbyte toegestaan.

C++-strings wijzen geheugen dynamisch toe. Indien nodig kan tijdens runtime meer geheugen aan de tekenreeks worden toegewezen. Aangezien er geen geheugenvoortoewijzing is, geen verspilling van geheugen. We kunnen verschillende bewerkingen op strings uitvoeren, waaronder vergelijkingen, aaneenschakelingen, conversies, enz.

In deze C++-zelfstudie leer je:

  • Wat is een string?
  • Snaren declareren
  • C-stijl tekenreeks
  • std::string
  • Toegang tot tekenreekswaarden
  • Stringfuncties:
  • strcpy()
  • strcat()
  • strlen()
  • strcmp()

Snaren declareren

C++ ondersteunt twee soorten tekenreeksdeclaraties:

  • C-stijl tekenreeks
  • Type tekenreeksklasse

C-stijl tekenreeks

Dit type tekenreeksdeclaratie is geïntroduceerd in de programmeertaal C. C++ blijft het ondersteunen. Het is gewoon een eendimensionale reeks tekens die wordt afgesloten met een null-teken (\0). Een null-terminated string heeft karakters die de string vormen, gevolgd door een null.

Overweeg de onderstaande tekenreeksdeclaratie:

char name[5] = {'J', 'o', 'h', 'n', '\0'};

De bovenstaande declaratie creëert een string die het woord John vormt. Het woord heeft 4 karakters, maar de string heeft een grootte van 5. De extra ruimte zorgt ervoor dat het null-teken kan worden vastgehouden.

Met behulp van de array-initialisatieregel kunnen we de bovenstaande verklaring als volgt schrijven:

char name[] = "John";

Merk op dat u het null-teken niet aan het einde van de stringconstante hoeft te plaatsen. De C++-compiler plaatst automatisch de '\0' aan het einde van de string bij het initialiseren van de array.

std::string

De standaard C++-bibliotheek biedt de tekenreeksklasse die verschillende tekenreeksbewerkingen ondersteunt. Het is geschreven als std::string.

Om deze klasse te gebruiken, moeten we deze eerst in onze werkruimte opnemen met behulp van de #include preprocessor zoals hieronder getoond:

#include<string>

Vervolgens kunnen we onze string declareren met behulp van het string-sleutelwoord. Bijvoorbeeld:

string name = "John";

De bovenstaande instructie maakt een tekenreeks met de naam naam die de waarde John bevat.

Toegang tot tekenreekswaarden

In C++ hebben we toegang tot de tekenreekswaarden met behulp van de tekenreeksnaam. Bijvoorbeeld:

#include <iostream>
using namespace std;
int main() {
	char name[5] = { 'J', 'o', 'h', 'n', '\0' };
	cout << "String value is: ";
	cout << name << endl;
	return 0;
}

Uitvoer:

Hier is een screenshot van de code:

Code uitleg:

  1. Inclusief het iostream-headerbestand in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
  2. Inclusief de std-naamruimte om de klassen en functies te gebruiken zonder deze aan te roepen.
  3. De functie main() aanroepen waarbinnen de logica van het programma moet worden toegevoegd. De { markeert het begin van de hoofdtekst van de functie main().
  4. Een tekenreeks declareren en de naam een ​​naam geven. De string zal de waarde John opslaan. De extra spatie zal het null-teken opslaan.
  5. Er wordt wat tekst op de console afgedrukt.
  6. De waarde van de string met de naam name afdrukken op de console.
  7. De functie main() zou een waarde moeten retourneren als het programma goed werkt.
  8. Einde van de hoofdtekst van de functie main().

Hier is nog een voorbeeld waarbij de C++ standaard stringklasse wordt gebruikt:

#include <iostream>
#include <string>
using namespace std;
int main() {

	string name = "Guru99";
	
	cout << "The name is : " << name << endl;

	return 0;
}

Uitvoer:

Hier is een screenshot van de code:

Code uitleg:

  1. Inclusief het iostream-headerbestand in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
  2. Inclusief de standaard tekenreeksklasse in onze code.
  3. Inclusief de std-naamruimte om de klassen en functies te gebruiken zonder deze aan te roepen.
  4. De functie main() aanroepen waarbinnen de logica van het programma moet worden toegevoegd. De { markeert het begin van de hoofdtekst van de functie main().
  5. Een string declareren en de naam geven. De string zal de waarde Guru99 opslaan.
  6. De waarde van de tekenreeksnaam afdrukken naast wat tekst op de console.
  7. De functie main() zou een waarde moeten retourneren als het programma goed werkt.
  8. Einde van de hoofdtekst van de functie main().

Stringfuncties:

Je zult vaak snaren willen manipuleren. C++ biedt een breed scala aan functies die u hiervoor kunt gebruiken. Deze functies zijn gedefinieerd in de klasse CString, daarom moeten we deze in onze code opnemen om de functies te kunnen gebruiken. Laten we er een paar bespreken:

strcpy()

Dit is de functie voor het kopiëren van tekenreeksen. Het kopieert de ene string naar een andere string.

Syntaxis:

strcpy(string1, string2);

De twee parameters van de functie, string1 en string2, zijn strings. De functie kopieert de string string1 naar string 1.

strcat()

Dit is de functie voor het samenvoegen van strings. Het voegt strings samen.

Syntaxis:

strcat(string1, string2);

De twee parameters van de functie, string1 en string2 zijn de strings die aaneengeschakeld moeten worden. De bovenstaande functie zal de string string2 samenvoegen tot het einde van de string string1.

strlen()

Dit is de tekenreekslengtefunctie. Het retourneert de lengte van de string die eraan is doorgegeven als argument.

Syntaxis:

strnlen(string1)

De parameter string1 is de naam van de string waarvan de lengte moet worden bepaald. De bovenstaande functie retourneert de lengte van de string string1.

strcmp()

Dit is de tekenreeksvergelijkingsfunctie. Het wordt gebruikt voor het vergelijken van strings.

Syntaxis:

strcmp(string1, string2);

De bovenstaande functie retourneert 0 als strings string1 en string2 vergelijkbaar zijn, kleiner dan 0 als string1string2.

Voorbeeld:

Het volgende voorbeeld laat zien hoe u de bovenstaande tekenreeksfuncties kunt gebruiken:

#include <iostream>
#include <cstring>
using namespace std;
int main() {

	char name1[10] = "Guru99";
	char name2[10] = "John";
	char name3[10];

	int  len;
	strcpy(name3, name1);
	cout << "strcpy( name3, name1) : " << name3 << endl;

	strcat(name1, name2);
	cout << "strcat( name1, name2): " << name1 << endl;

	len = strlen(name1);
	cout << "strlen(name1) : " << len << endl;
	return 0;
}

Uitvoer:

Hier is een screenshot van de code:

Code uitleg:

  1. Inclusief het iostream-headerbestand in onze code. Hiermee kunnen we lezen van en schrijven naar de console.
  2. Inclusief de standaard CString-klasse in onze code.
  3. Inclusief de std-naamruimte om de klassen en functies te gebruiken zonder deze aan te roepen.
  4. De functie main() aanroepen waarbinnen de logica van het programma moet worden toegevoegd. De { markeert het begin van de hoofdtekst van de functie main().
  5. Een reeks van 10 tekens declareren en deze de naam name1 geven. De string zal de waarde Guru99 opslaan.
  6. Een reeks van 10 tekens declareren en deze de naam name2 geven. De string zal de waarde John opslaan.
  7. Een reeks van 10 tekens declareren en deze de naam name3 geven.
  8. Een integer-variabele met de naam len declareren.
  9. De tekenreeksnaam1 kopiëren naar de tekenreeksnaam3.
  10. De waarde van de tekenreeksnaam1 afdrukken naast wat tekst op de console. Het zou Guru99 moeten afdrukken.
  11. De tekenreeksen naam2 aan het einde van tekenreeksnaam1 aaneenschakelen. De waarde van naam1 is nu Guru99John.
  12. De waarde van de tekenreeksnaam1 afdrukken naast wat tekst op de console. Het zou moeten afdrukken Guru99John
  13. De lengte van de string met de naam name1 bepalen en de waarde van lengte toewijzen aan variabele len.
  14. De waarde van len-variabele afdrukken naast wat andere tekst op de console.
  15. De functie main() zou een waarde moeten retourneren als het programma goed werkt.
  16. Einde van de hoofdtekst van de functie main().

Samenvatting

  • Een tekenreeks is een reeks tekens.
  • Strings behoren tot de standaard stringklasse in C++.
  • We kunnen tekenreeksen declareren met behulp van de tekenreeks C-stijl of de standaardtekenreeksklasse.
  • De functie strcpy() kopieert de ene string naar de andere.
  • De functie strcat() voegt twee functies samen.
  • De functie strlen() retourneert de lengte van een functie.
  • De functie strcmp() vergelijkt twee strings.

C Taal

  1. Java-strings
  2. Java enum Strings
  3. C++ variabelen en typen:int, double, char, string, bool
  4. Arrays in C++ | Verklaren | Initialiseren | Aanwijzer naar matrixvoorbeelden
  5. C++ do...while-lus met voorbeelden
  6. C++-aanwijzers met voorbeelden
  7. C++ Char-gegevenstype met voorbeelden
  8. Overbelasting van C++-operator met voorbeelden
  9. C++-functies met programmavoorbeelden
  10. Strings in C:variabele declareren, initialiseren, afdrukken, voorbeeld
  11. Java String indexOf() Methode met Substring &Voorbeelden