Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Prog2
/
labor_peldak
/
lab_05
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
A prog2-höz tartozó friss repo anyagok itt elérhetőek:
https://git.iit.bme.hu/
Commit
85d27c54
authored
Mar 06, 2019
by
Szeberényi Imre
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ell.
parent
a9506e39
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
26 additions
and
8 deletions
+26
-8
rendez.cpp
+1
-1
string5_test.cpp
+25
-7
No files found.
rendez.cpp
View file @
85d27c54
...
@@ -23,7 +23,7 @@
...
@@ -23,7 +23,7 @@
#include <cstring>
#include <cstring>
#include <cstdlib>
#include <cstdlib>
#include <clocale>
#include <clocale>
#if defined(WIN32) || defined(_WIN32)
#if defined(WIN32) || defined(_WIN32)
|| defined(WIN64) || defined(_WIN64)
# include <windows.h>
# include <windows.h>
# include "rendez.h" // latin-2 kódolású szövegek
# include "rendez.h" // latin-2 kódolású szövegek
#else
#else
...
...
string5_test.cpp
View file @
85d27c54
...
@@ -15,7 +15,9 @@
...
@@ -15,7 +15,9 @@
#include "memtrace.h" // a standard header-ek után kell lennie
#include "memtrace.h" // a standard header-ek után kell lennie
#include "gtest_lite.h"
#include "gtest_lite.h"
#include "string5.h"
#include "string5.h"
#include "rendez.h"
#if ELKESZUT >= 12 && !defined(CPORTA)
# include "rendez.h"
#endif
using
std
::
cout
;
using
std
::
cout
;
using
std
::
cin
;
using
std
::
cin
;
...
@@ -32,10 +34,12 @@ int main() {
...
@@ -32,10 +34,12 @@ int main() {
TEST
(
Elkeszult1
,
construct
)
{
TEST
(
Elkeszult1
,
construct
)
{
String
ures
;
String
ures
;
ures
.
printDbg
(
"Ures sztring: "
);
// debug kiíratás
ures
.
printDbg
(
"Ures sztring: "
);
// debug kiíratás
if
(
ures
.
size
()
==
0
)
if
(
ures
.
size
()
!=
0
)
SUCCEED
()
<<
"Hurra! Van egy sztringem, de nem biztos, hogy ures!"
<<
endl
;
else
FAIL
()
<<
"Baj van a string hosszaval"
<<
endl
;
FAIL
()
<<
"Baj van a string hosszaval"
<<
endl
;
#ifndef CPORTA
else
SUCCEED
()
<<
"Hurra! Van egy sztringem, de nem biztos, hogy ures!"
<<
endl
;
#endif // CPORTA
}
ENDM
}
ENDM
#endif
#endif
...
@@ -47,6 +51,8 @@ int main() {
...
@@ -47,6 +51,8 @@ int main() {
TEST
(
Elkeszult2
,
emptyStr
)
{
TEST
(
Elkeszult2
,
emptyStr
)
{
String
ures
;
String
ures
;
EXPECT_EQ
((
size_t
)
0
,
ures
.
size
())
<<
"Baj van a string hosszaval"
<<
endl
;
EXPECT_EQ
((
size_t
)
0
,
ures
.
size
())
<<
"Baj van a string hosszaval"
<<
endl
;
/// Ellenőrizzük, hogy üres sztringet ("") kaptunk-e vissza?
EXPECT_STREQ
(
""
,
ures
.
c_str
())
<<
"Nem ures sztring jott letre"
<<
endl
;
EXPECT_STREQ
(
""
,
ures
.
c_str
())
<<
"Nem ures sztring jott letre"
<<
endl
;
}
ENDM
}
ENDM
#endif
#endif
...
@@ -60,6 +66,7 @@ int main() {
...
@@ -60,6 +66,7 @@ int main() {
String
a
(
ch
);
String
a
(
ch
);
EXPECT_EQ
((
size_t
)
1
,
a
.
size
())
<<
"Baj van a string hosszaval"
<<
endl
;
EXPECT_EQ
((
size_t
)
1
,
a
.
size
())
<<
"Baj van a string hosszaval"
<<
endl
;
EXPECT_STREQ
(
"a"
,
a
.
c_str
())
<<
"Karakterbol sztring letrehozasa nem sikerult!"
<<
endl
;
EXPECT_STREQ
(
"a"
,
a
.
c_str
())
<<
"Karakterbol sztring letrehozasa nem sikerult!"
<<
endl
;
String
b
(
'a'
);
// konstansból is megy?
String
b
(
'a'
);
// konstansból is megy?
EXPECT_STREQ
(
"a"
,
b
.
c_str
())
<<
"Karakterbol sztring letrehozasa nem sikerult!"
<<
endl
;
EXPECT_STREQ
(
"a"
,
b
.
c_str
())
<<
"Karakterbol sztring letrehozasa nem sikerult!"
<<
endl
;
}
ENDM
}
ENDM
...
@@ -76,6 +83,7 @@ int main() {
...
@@ -76,6 +83,7 @@ int main() {
EXPECT_EQ
(
strlen
(
hello
),
a
.
size
())
<<
"Baj van a string hosszaval"
<<
endl
;
EXPECT_EQ
(
strlen
(
hello
),
a
.
size
())
<<
"Baj van a string hosszaval"
<<
endl
;
EXPECT_STREQ
(
hello
,
a
.
c_str
())
<<
"C-sztringbol string letrehozasa nem sikerult!"
<<
endl
;
EXPECT_STREQ
(
hello
,
a
.
c_str
())
<<
"C-sztringbol string letrehozasa nem sikerult!"
<<
endl
;
/// Ellenőrizzük, hogy lemásolta-e a sztringet. Nem elég a pointert!
char
cpp
[]
=
{
'C'
,
'+'
,
'+'
,
'\0'
};
char
cpp
[]
=
{
'C'
,
'+'
,
'+'
,
'\0'
};
String
b
(
cpp
);
String
b
(
cpp
);
cpp
[
0
]
=
'X'
;
cpp
[
0
]
=
'X'
;
...
@@ -94,10 +102,13 @@ int main() {
...
@@ -94,10 +102,13 @@ int main() {
EXPECT_EQ
(
strlen
(
hello
),
b
.
size
())
<<
"Baj van a string hosszaval!"
<<
endl
;
EXPECT_EQ
(
strlen
(
hello
),
b
.
size
())
<<
"Baj van a string hosszaval!"
<<
endl
;
EXPECT_STREQ
(
hello
,
b
.
c_str
())
<<
"Baj van a masolo konstruktorral!"
<<
endl
;
EXPECT_STREQ
(
hello
,
b
.
c_str
())
<<
"Baj van a masolo konstruktorral!"
<<
endl
;
/// Ellenőrizzük, hogy lemásolta-e a sztringet. Nem elég a pointert!
if
(
a
.
c_str
()
==
b
.
c_str
())
// Ha a két pointer egyezik, akkor nem másolta le az adatot
if
(
a
.
c_str
()
==
b
.
c_str
())
// Ha a két pointer egyezik, akkor nem másolta le az adatot
FAIL
()
<<
"!** ctor: nem elegendo a pointereket lemasolni!"
<<
endl
;
FAIL
()
<<
"!** ctor: nem elegendo a pointereket lemasolni!"
<<
endl
;
EXPECT_STREQ
(
hello
,
a
.
c_str
())
<<
"Masolo kontsr. elromlott a forras!"
<<
endl
;
EXPECT_STREQ
(
hello
,
a
.
c_str
())
<<
"Masolo kontsr. elromlott a forras!"
<<
endl
;
EXPECT_EQ
(
strlen
(
hello
),
a
.
size
())
<<
"Masolo konstr. alatt elromlott a forras hossza!"
<<
endl
;
EXPECT_EQ
(
strlen
(
hello
),
a
.
size
())
<<
"Masolo konstr. alatt elromlott a forras hossza!"
<<
endl
;
const
String
c
=
a
;
const
String
c
=
a
;
String
d
=
c
;
// konstansból is megy?
String
d
=
c
;
// konstansból is megy?
EXPECT_STREQ
(
hello
,
d
.
c_str
())
<<
"Baj van a masolo konstruktorral"
<<
endl
;
EXPECT_STREQ
(
hello
,
d
.
c_str
())
<<
"Baj van a masolo konstruktorral"
<<
endl
;
...
@@ -117,14 +128,18 @@ int main() {
...
@@ -117,14 +128,18 @@ int main() {
EXPECT_EQ
(
strlen
(
hello
),
a
.
size
())
<<
"Baj van az ertekadassal: a = a hossz"
<<
endl
;
EXPECT_EQ
(
strlen
(
hello
),
a
.
size
())
<<
"Baj van az ertekadassal: a = a hossz"
<<
endl
;
EXPECT_STREQ
(
hello
,
a
.
c_str
())
<<
"Baj van az ertekadassal: a = a"
<<
endl
;
EXPECT_STREQ
(
hello
,
a
.
c_str
())
<<
"Baj van az ertekadassal: a = a"
<<
endl
;
c
=
b
=
a
;
c
=
b
=
a
;
/// Ellenőrizzük, hogy lemásolta-e a sztringet. Nem elég a pointert!
if
(
a
.
c_str
()
==
b
.
c_str
())
// Ha a két pointer egyezik, akkor nem másolta le az adatot
if
(
a
.
c_str
()
==
b
.
c_str
())
// Ha a két pointer egyezik, akkor nem másolta le az adatot
FAIL
()
<<
"!** op=: nem elegendo a pointereket lemasolni!"
<<
endl
;
FAIL
()
<<
"!** op=: nem elegendo a pointereket lemasolni!"
<<
endl
;
EXPECT_EQ
(
strlen
(
hello
),
a
.
size
())
<<
"Ertekedasnal elromlott a forras hossza!"
<<
endl
;
EXPECT_EQ
(
strlen
(
hello
),
a
.
size
())
<<
"Ertekedasnal elromlott a forras hossza!"
<<
endl
;
EXPECT_STREQ
(
hello
,
a
.
c_str
())
<<
"Ertekadasnal elromlott a forras!"
<<
endl
;
EXPECT_STREQ
(
hello
,
a
.
c_str
())
<<
"Ertekadasnal elromlott a forras!"
<<
endl
;
EXPECT_EQ
(
strlen
(
hello
),
b
.
size
())
<<
"Ertekedas: nem jo a hossz!"
<<
endl
;
EXPECT_EQ
(
strlen
(
hello
),
b
.
size
())
<<
"Ertekedas: nem jo a hossz!"
<<
endl
;
EXPECT_STREQ
(
hello
,
b
.
c_str
())
<<
"Ertekadas nem sikerult!"
<<
endl
;
EXPECT_STREQ
(
hello
,
b
.
c_str
())
<<
"Ertekadas nem sikerult!"
<<
endl
;
EXPECT_EQ
(
strlen
(
hello
),
c
.
size
())
<<
"Ertekedas: nem jo a hossz!"
<<
endl
;
EXPECT_EQ
(
strlen
(
hello
),
c
.
size
())
<<
"Ertekedas: nem jo a hossz!"
<<
endl
;
EXPECT_STREQ
(
hello
,
c
.
c_str
())
<<
"Ertekadas nem sikerult!"
<<
endl
;
EXPECT_STREQ
(
hello
,
c
.
c_str
())
<<
"Ertekadas nem sikerult!"
<<
endl
;
const
String
d
(
"Konst."
);
const
String
d
(
"Konst."
);
c
=
d
;
// konstansból is megy?
c
=
d
;
// konstansból is megy?
EXPECT_EQ
(
c
.
size
(),
c
.
size
())
<<
"Ertekedas konstansbol: nem jo a hossz!"
<<
endl
;
EXPECT_EQ
(
c
.
size
(),
c
.
size
())
<<
"Ertekedas konstansbol: nem jo a hossz!"
<<
endl
;
...
@@ -146,6 +161,7 @@ int main() {
...
@@ -146,6 +161,7 @@ int main() {
EXPECT_STREQ
(
"Hello "
,
a
.
c_str
())
<<
"A + muvelet elrontja a bal oldalt?"
<<
endl
;
EXPECT_STREQ
(
"Hello "
,
a
.
c_str
())
<<
"A + muvelet elrontja a bal oldalt?"
<<
endl
;
EXPECT_STREQ
(
"sztring"
,
b
.
c_str
())
<<
"A + muvelet elrontja a jobb oldalt?"
<<
endl
;
EXPECT_STREQ
(
"sztring"
,
b
.
c_str
())
<<
"A + muvelet elrontja a jobb oldalt?"
<<
endl
;
const
String
a1
=
a
,
b1
=
b
;
const
String
a1
=
a
,
b1
=
b
;
String
c1
;
String
c1
;
c1
=
a1
+
b1
;
// konstansból is megy?
c1
=
a1
+
b1
;
// konstansból is megy?
EXPECT_STREQ
(
"Hello sztring"
,
c1
.
c_str
())
<<
"Nem sikerult a + String muvelet!"
<<
endl
;
EXPECT_STREQ
(
"Hello sztring"
,
c1
.
c_str
())
<<
"Nem sikerult a + String muvelet!"
<<
endl
;
...
@@ -157,6 +173,7 @@ int main() {
...
@@ -157,6 +173,7 @@ int main() {
b
=
a
+
'B'
;
b
=
a
+
'B'
;
EXPECT_STREQ
(
"Hello B"
,
b
.
c_str
())
<<
"Nem sikerult a + char muvelet!"
<<
endl
;
EXPECT_STREQ
(
"Hello B"
,
b
.
c_str
())
<<
"Nem sikerult a + char muvelet!"
<<
endl
;
EXPECT_STREQ
(
"Hello "
,
a
.
c_str
())
<<
"A + muvelet elrontja a bal oldalt?"
<<
endl
;
EXPECT_STREQ
(
"Hello "
,
a
.
c_str
())
<<
"A + muvelet elrontja a bal oldalt?"
<<
endl
;
const
String
a1
=
a
;
const
String
a1
=
a
;
String
b1
;
String
b1
;
b1
=
a1
+
'B'
;
// konstansból is megy?
b1
=
a1
+
'B'
;
// konstansból is megy?
...
@@ -177,6 +194,7 @@ int main() {
...
@@ -177,6 +194,7 @@ int main() {
b
=
h
+
a
;
b
=
h
+
a
;
EXPECT_STREQ
(
"Hello"
,
b
.
c_str
())
<<
"Nem sikerult char + Str muvelet!"
<<
endl
;
EXPECT_STREQ
(
"Hello"
,
b
.
c_str
())
<<
"Nem sikerult char + Str muvelet!"
<<
endl
;
EXPECT_STREQ
(
"ello"
,
a
.
c_str
())
<<
"A + muvelet elrontja a jobb oldalt?"
<<
endl
;
EXPECT_STREQ
(
"ello"
,
a
.
c_str
())
<<
"A + muvelet elrontja a jobb oldalt?"
<<
endl
;
String
b1
;
String
b1
;
b1
=
'H'
+
a
;
// konstanssal is megy?
b1
=
'H'
+
a
;
// konstanssal is megy?
EXPECT_STREQ
(
"Hello"
,
b
.
c_str
())
<<
"Nem sikerult char + Str muvelet!"
<<
endl
;
EXPECT_STREQ
(
"Hello"
,
b
.
c_str
())
<<
"Nem sikerult char + Str muvelet!"
<<
endl
;
...
@@ -244,7 +262,7 @@ int main() {
...
@@ -244,7 +262,7 @@ int main() {
* szorgalmi feladat feladat. Most a rendezésen van a hangsúly.
* szorgalmi feladat feladat. Most a rendezésen van a hangsúly.
* Értse meg a rendez.cpp fájlban levő kód működését és futtassa a programot!
* Értse meg a rendez.cpp fájlban levő kód működését és futtassa a programot!
*/
*/
#if ELKESZULT == 12
#if ELKESZULT == 12
&& !defined(CPORTA)
rendez
();
rendez
();
#endif
#endif
...
@@ -253,12 +271,12 @@ int main() {
...
@@ -253,12 +271,12 @@ int main() {
* szükséges nyelvi környezetet (LC_COLLATE) próbálja ki! Változott a rendezési
* szükséges nyelvi környezetet (LC_COLLATE) próbálja ki! Változott a rendezési
* sorrend?
* sorrend?
*/
*/
#if ELKESZULT >= 13
#if ELKESZULT >= 13
&& !defined(CPORTA)
cout
<<
endl
;
cout
<<
endl
;
/// beállítja az op.rendszer által használt nyelvi környezetet, amit feltételezünk, hogy magyar
/// beállítja az op.rendszer által használt nyelvi környezetet, amit feltételezünk, hogy magyar
cout
<<
"Nyelvi beallitas: "
<<
setlocale
(
LC_ALL
,
""
)
<<
endl
;
cout
<<
"Nyelvi beallitas: "
<<
setlocale
(
LC_ALL
,
""
)
<<
endl
;
#if defined(WIN32) || defined(_WIN32) || defined(_WIN64)
#if defined(WIN32) || defined(_WIN32) || defined(
WIN64) || defined(
_WIN64)
/// Windows alatt egyéb varázslatra is szükség van ...
/// Windows alatt egyéb varázslatra is szükség van ...
SetConsoleCP
(
1250
);
SetConsoleCP
(
1250
);
SetConsoleOutputCP
(
1250
);
SetConsoleOutputCP
(
1250
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment