Programa C++ para concatenar dos strings usando la sobrecarga del operador

Requisito previo: Sobrecarga de operadores en C++
Dadas dos strings. La tarea es concatenar las dos strings usando la sobrecarga de operadores en C++.

Ejemplo: 

Input: str1 = "hello", str2 = "world"
Output: helloworld

Input: str1 = "Geeks", str2 = "World"
Output: GeeksWorld

Enfoque 1 : uso de sobrecarga de operadores unarios. 

  • Para concatenar dos strings mediante la sobrecarga de operadores unarios. Declara una clase con dos variables de string.
  • Cree una instancia de la clase y llame al constructor parametrizado de la clase para inicializar esas dos variables de string con las strings de entrada de la función principal.
  • Sobrecargue el operador unario  +  para concatenar estas dos variables de string para una instancia de la clase.
  • Finalmente, llame a la función del operador y concatene dos variables de clase.

A continuación se muestra la implementación del enfoque anterior:  

C++

// C++ Program to concatenate two string
// using unary operator overloading
#include <iostream>
#include <string.h>
 
using namespace std;
 
// Class to implement operator overloading
// function for concatenating the strings
class AddString {
 
public:
    // Classes object of string
    char s1[25], s2[25];
 
    // Parameterized Constructor
    AddString(char str1[], char str2[])
    {
        // Initialize the string to class object
        strcpy(this->s1, str1);
        strcpy(this->s2, str2);
    }
 
    // Overload Operator+ to concat the string
    void operator+()
    {
        cout << "\nConcatenation: " << strcat(s1, s2);
    }
};
 
// Driver Code
int main()
{
    // Declaring two strings
    char str1[] = "Geeks";
    char str2[] = "ForGeeks";
 
    // Declaring and initializing the class
    // with above two strings
    AddString a1(str1, str2);
 
    // Call operator function
    +a1;
    return 0;
}
Producción: 

Concatenation: GeeksForGeeks

 

Enfoque 2: uso de sobrecarga de operadores binarios. 

  • Declare una clase con una variable de string y una función de operador ‘+’ que acepta una instancia de la clase y concatena su variable con la variable de string de la instancia actual.
  • Cree dos instancias de la clase e inicialice sus variables de clase con las dos strings de entrada respectivamente.
  • Ahora, use la función de operador sobrecargado (+) para concatenar la variable de clase de las dos instancias.

A continuación se muestra la implementación del enfoque anterior:  

C++

// C++ Program to concatenate two strings using
// binary operator overloading
#include <iostream>
#include <string.h>
 
using namespace std;
 
// Class to implement operator overloading function
// for concatenating the strings
class AddString {
 
public:
    // Class object of string
    char str[100];
 
    // No Parameter Constructor
    AddString() {}
 
    // Parameterized constructor to
    // initialize class Variable
    AddString(char str[])
    {
        strcpy(this->str, str);
    }
 
    // Overload Operator+ to concatenate the strings
    AddString operator+(AddString& S2)
    {
        // Object to return the copy
        // of concatenation
        AddString S3;
 
        // Use strcat() to concat two specified string
        strcat(this->str, S2.str);
 
        // Copy the string to string to be return
        strcpy(S3.str, this->str);
 
        // return the object
        return S3;
    }
};
 
// Driver Code
int main()
{
    // Declaring two strings
    char str1[] = "Geeks";
    char str2[] = "ForGeeks";
 
    // Declaring and initializing the class
    // with above two strings
    AddString a1(str1);
    AddString a2(str2);
    AddString a3;
 
    // Call the operator function
    a3 = a1 + a2;
    cout << "Concatenation: " << a3.str;
 
    return 0;
}
Producción: 

Concatenation: GeeksForGeeks

 

Publicación traducida automáticamente

Artículo escrito por bilal-hungund y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *