📜  C ++程序使用运算符重载连接两个字符串

📅  最后修改于: 2021-06-01 02:03:04             🧑  作者: Mango

先决条件: C++中的运算符重载

给出两个字符串。任务是使用C++中的“运算符重载”来连接两个字符串。

例子:

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

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

方法1 :使用一元运算运算符重载。

  • 使用一元运算运算符重载来连接两个字符串。声明一个带有两个字符串变量的类。
  • 创建类的实例并调用类的Parametrized构造器,以使用主函数的输入字符串初始化这两个字符串变量。
  • 重载一元运算运算符+将这两个字符串变量连接为该类的实例。
  • 最后,调用运算符函数并连接两个类变量。

下面是上述方法的实现:

// C++ Program to concatenate two string
// using unary operator overloading
#include 
#include 
  
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];
  
    // Parametrized 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;
}
输出:
Concatenation: GeeksForGeeks

方法2:使用二进制运算符重载。

  • 声明一个类的字符串变量,并接受类并连接它与当前实例的字符串变量变量的一个实例的运算符函数“+”。
  • 创建该类的两个实例,并分别使用两个输入字符串初始化其类变量。
  • 现在,使用重载运算符(+)函数来连接两个实例的类变量。

下面是上述方法的实现:

// C++ Program to concatenate two strings using
// binary operator overloading
#include 
#include 
  
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() {}
  
    // Parametrized 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;
}
输出:
Concatenation: GeeksForGeeks
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”