DSA Lab 01
DSA Lab 01
Reg # 04-FET/BSCE/F22
DATE: 27-05-2024
Lab Number : 01
Implement following functions in a String Class:
String ToUpper()
String ToLower()
Int Length()
bool Search ( String s);
String SubString(int start, char delim);
String Operator + (String s2);
Code :
#include <iostream>
#include <iomanip>
using namespace std;
class String {
private:
char str[MAX];
// int size; // to keep track of length of string
public:
String();
String(const char*);
void Insert(int pos, char ch);
void Del(int pos);
void Print();
void Println();
int Search(char ch);
String SubString(int start, int end);
};
String::String() {
str[0] = '\0';
}
String::String(const char* s) {
int i = 0;
for (; s[i]; i++) {
str[i] = s[i];
}
str[i] = '\0';
}
// inserts a character at given position position
void String::Insert(int pos, char ch) {
// Shift elements to right
int i = MAX - 1;
for (; i > pos; i--)
str[i] = str[i - 1];
str[i] = ch;
}
// Returns Substring
String String::SubString(int start, int total_characters) {
String temp;
int i = start;
int end = start + total_characters;
for (; i < end && i < MAX; i++) {
temp.str[i - start] = str[i];
}
temp.str[i - start] = '\0';
return temp;
}
void String::Println() {
cout << str << endl;
}
String String::ToUpper() {
for (int i = 0; str[i] != '\0'; ++i) {
if (str[i] >= 'a' && str[i] <= 'z') {
// Convert lowercase letters to uppercase
str[i] = str[i] - 'a' + 'A';
}
}
return *this; // returning copy of String
}
String String::ToLower() {
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] >= 'A' && str[i] <= 'Z') {
str[i] = str[i] + 32; // Convert to lowercase using ASCII
code
}
}
return *this;// returning copy of String
}
int String::Length() {
int len = 0;
while (str[len] != '\0') {
len++;
}
return len;
}
bool String::Search(String s) {
int i = 0;
else {
cout << "ERROR : String Overflow\n";
exit(1);
}
return temp;
}
int main() {
String s1("Sunday , August 14 , 2022 14:15:16");
s1.Println();
cout << "Length of S1 = " << s1.Length() << endl << endl;
return 0;
}
Output :