先决条件: 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等的更多准备工作,请参阅“完整面试准备课程” 。