Select Git revision
string5.cpp
string5.cpp 5.28 KiB
/**
*
* \file string5_kesz.cpp
*
* Itt kell megvalĂłsĂtania a hiĂĄnyzĂł tagfĂźggvĂŠnyeket.
* SegĂtsĂŠgĂźl megadtuk a C-ben megĂrt vĂĄltozatban (string1.c) hasznĂĄlt fĂźggvĂŠnyneveket.
*
* Ha valamit INLINE-kĂŠnt valĂłsĂt meg, akkor annak a .h-ba kell kerĂźlnie,
* akĂĄr kĂvĂźl akĂĄr osztĂĄlyon belĂźl definiĂĄlja. (Az inline fĂźggvĂŠnyeknek minden
* fordĂtĂĄsi egysĂŠgben elĂŠrhetĹknek kell lenniĂźk)
* *
* A tesztelĂŠskor ne felejtse el beĂĄllĂtani a header ĂĄllomĂĄnyban az ELKESZULT makrĂłt.
* A VC sajĂĄt memĂłriafogyĂĄs ellenĹrzĹje csak debug mĂłdban (Debug->Start) mĹąkĂśdik!
*
*/
#ifdef _MSC_VER
// MSC ne adjon figyelmeztetĹ Ăźzenetet a stringkezelĹ fĂźggvĂŠnyekre.
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <iostream> // KiĂratĂĄshoz
#include <cstring> // StringmĹąveletekhez
// a standard headerek utĂĄn kell lennie
#ifndef MEMTRACE
#include "memtrace.h"
#endif
#include "string5.h"
using std::cin;
using std::ios_base;
/// Konstruktor: egy char karakterbĹl (createStrFromChar)
String::String(char ch) {
// MeghatĂĄrozzuk a hosszĂĄt
len = 1;
// Lefoglalunk a helyet a hossznak + a lezarĂł nullĂĄnak
pData = new char[len+1];
// BetesszĂźk a karaktert
pData[0] = ch;
pData[1] = '\0';
}
// Konstruktor: egy nullĂĄval lezĂĄrt char sorozatbĂłl (createStringFromCharStr)
String::String(const char *p) {
// MeghatĂĄrozzuk a hosszĂĄt
len = strlen(p);
// Helyet foglalunk
pData = new char[len+1];
// BemĂĄsoljuk a stringet, ami le van zĂĄrva 0-val Ăgy hasznĂĄlhatĂł az strcpy is
strcpy(pData, p);
}
// MĂĄsolĂł konstruktor
String::String(const String& s1) {
// MeghatĂĄrozzuk a hosszĂĄt
len = s1.len;
// Helyet foglalunk
pData = new char[len+1];
// BemĂĄsoljuk a stringet, ami le van zĂĄrva 0-val Ăgy hasznĂĄlhatĂł az strcpy is
strcpy(pData, s1.pData);
}
//Egyenlőséget vizsgáló operátor
bool String::operator==(const String& tbc){
//Ha nem egyezik meg a stringek hossza hamissal tér vissza
if (len != tbc.len){
return false;
}