#include <iostream>
#include <cstring>
class MyString {
private:
char* str;
public:
MyString() : str(nullptr) {}
MyString(const char* s) {
if (s != nullptr) {
str = new char[strlen(s) + 1];
strcpy(str, s);
} else {
str = nullptr;
}
}
~MyString() {
delete[] str;
}
bool operator==(const MyString& other) const {
return strcmp(str, other.str) == 0;
}
MyString operator+(const MyString& other) const {
char* result = new char[strlen(str) + strlen(other.str) + 1];
strcpy(result, str);
strcat(result, other.str);
MyString concatenated(result);
delete[] result;
return concatenated;
}
friend std::ostream& operator<<(std::ostream& os, const MyString& myString) {
os << myString.str;
return os;
}
friend std::istream& operator>>(std::istream& is, MyString& myString) {
char temp[100];
is >> temp;
myString = MyString(temp);
return is;
}
MyString reverse() const {
char* reversed = new char[strlen(str) + 1];
int j = 0;
for (int i = strlen(str) - 1; i >= 0; --i) {
reversed[j++] = str[i];
}
reversed[j] = '\0';
MyString reversedString(reversed);
delete[] reversed;
return reversedString;
}
bool isPalindrome() const {
MyString reversed = reverse();
return *this == reversed;
}
int findSubstring(const char* subStr) const {
char* ptr = strstr(str, subStr);
if (ptr != nullptr) {
return ptr - str;
}
return -1;
}
};
int main() {
MyString str1("hello");
MyString str2("world");
if (str1 == str2) {
std::cout << "Strings are equal." << std::endl;
} else {
std::cout << "Strings are not equal." << std::endl;
}
MyString concatenated = str1 + str2;
std::cout << "Concatenated string: " << concatenated << std::endl;
std::cout << "Enter a string: ";
MyString input;
std::cin >> input;
std::cout << "You entered: " << input << std::endl;
MyString reversed = input.reverse();
std::cout << "Reversed string: " << reversed << std::endl;
if (input.isPalindrome()) {
std::cout << "The entered string is a palindrome." << std::endl;
} else {
std::cout << "The entered string is not a palindrome." << std::endl;
}
const char* subStr = "lo";
int occurrence = input.findSubstring(subStr);
if (occurrence != -1) {
std::cout << "Substring '" << subStr << "' found at position " << occurrence << std::endl;
} else {
std::cout << "Substring '" << subStr << "' not found." << std::endl;
}
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: