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