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++ String‑Functies Beheersen: strcpy, strcat, strlen, strcmp – Praktische Voorbeelden

Wat is een String?

Een string is simpelweg een reeks karakters. In modern C++ werken we meestal met objecten van de std::string-klasse, die geheugentoewijzing, resizen en een reeks nuttige member‑functies automatisch afhandelt. Dit elimineert de noodzaak voor handmatig buffermanagement en vermindert het risico op buffer‑overruns.

Voor educatieve doeleinden ondersteunt C++ nog steeds de traditionele C‑stijl null‑getermineerde karakter‑arrays. Beide benaderingen hebben hun plaats: gebruik std::string voor alledaagse programmering, en reserveer C‑stijl strings voor legacy API's of prestatie‑kritieke low‑level code.

Strings Declareren

  • C‑stijl karakterstring: een eendimensionale array van char getermineerd door een null‑karakter (\0).
  • std::string: een klasse uit de C++ Standard Library die een rijke interface biedt voor string‑manipulatie.

C‑Stijl Karakterstring

Voorbeeld:

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

of knapper:

 char name[] = "John"; // compiler voegt de terminierende '\0' toe 

std::string

Om std::string te gebruiken, include de header en declareer een variabele:

 #include <string>
std::string name = "John"; 

String‑Waarden Benaderen

Hieronder is een simpel console‑programma dat een C‑stijl string en een std::string-waarde print.

 #include <iostream>
#include <string>
using namespace std;
int main() {
    char cName[5] = "John"; // C‑stijl string
    cppName = "Guru99"; // std::string
    cout << "C‑stijl string: " << cName << endl;
    cout << "std::string: " << cppName << endl;
    return 0;
 } 

Output:

C++ String‑Functies Beheersen: strcpy, strcat, strlen, strcmp – Praktische Voorbeelden

Belangrijke C String‑Functies

Deze functies zijn gedefinieerd in de cstring-header. Ze werken op C‑stijl strings (null‑getermineerde arrays van char).

strcpy()

Kopieert de bronstring in de doelbuffer. De bestemming moet groot genoeg zijn om de bron te bevatten.

 strcpy(dest, src); // dest moet voldoende ruimte hebben 

strcat()

Voegt de bronstring toe aan het einde van de doelstring. Ook hier moet de doelbuffer groot genoeg zijn voor het resultaat.

 strcat(dest, src); // dest moet voldoende ruimte hebben 

strlen()

Retourneert het aantal karakters in de string, exclusief de terminierende null‑byte.

 size_t len = strlen(str); 

strcmp()

Vergelijkt twee strings lexicografisch. Retourneert 0 als ze gelijk zijn, een negatieve waarde als de eerste string kleiner is, en een positieve waarde als de eerste string groter is.

 int cmp = strcmp(str1, str2); 

Praktisch Voorbeeld

 #include <iostream>
#include <cstring>
using namespace std;
int main() {
    char name1[10] = "Guru99";
    char name2[10] = "John";
    char name3[20]; // Zorg dat het de geconcateneerde uitkomst kan bevatten
    // Kopiëren
    strcpy(name3, name1);
    cout << "strcpy(name3, name1): " << name3 << endl;
    // Concateneren
    strcat(name1, name2);
    cout << "strcat(name1, name2): " << name1 << endl;
    // Lengte
    size_t len = strlen(name1);
    cout << "strlen(name1): " << len << endl;
    // Vergelijking
    int cmp = strcmp(name1, name3);
    cout << "strcmp(name1, name3): " << cmp << endl;
    return 0;
 } 

Output:

C++ String‑Functies Beheersen: strcpy, strcat, strlen, strcmp – Praktische Voorbeelden

Conclusie

  • Gebruik std::string voor de meeste C++‑code – het is veiliger en eenvoudiger.
  • Wanneer je met raw karakter‑arrays moet werken, zijn de cstring-functies essentieel.
  • Zorg altijd dat doelbuffers groot genoeg zijn om overflows te voorkomen.
  • Gebruik strlen alleen als je de lengte nodig hebt; std::string::size() is te verkiezen voor std::string-objecten.
  • Verkies strcmp voor legacy API's; std::string::compare() of de overbelaste operator== geven duidelijke semantiek in modern C++.

C Taal

  1. C++ Variabelen en Datatypes: Expert‑handleiding voor int, double, char, string, bool
  2. C++ Arrays Ontmaskerd: Declaratie, Initialisatie en Pointer‑Technieken
  3. C++ do‑while Lus: Syntaxis, Praktische Voorbeelden en Geneste Lussen
  4. C++ Pointers Onder de Knie: Concepten, Voorbeelden & Praktische Toepassingen
  5. C++ Char Datatype: Declaratie, ASCII en Conversie‑Technieken
  6. C++ Operator Overloading – Praktische Handleiding met Code‑Voorbeelden
  7. C++ Functies Uitgelegd met Praktische Codevoorbeelden
  8. C Strings Makkelijk Gemaakt: Declaratie, Invoer, Uitvoer en Bibliotheekfuncties
  9. Java Strings beheersen: aanmaken, methodes en best practices
  10. String representaties in Java Enums meesteren
  11. Java String.indexOf() beheersen: Substrings lokaliseren & praktische voorbeelden