253 lines
4.0 KiB
C++
253 lines
4.0 KiB
C++
|
#define _CRT_SECURE_NO_WARNINGS
|
|||
|
#include "String.hpp"
|
|||
|
using namespace std;
|
|||
|
using namespace Lenyiin;
|
|||
|
|
|||
|
|
|||
|
// <20><><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>
|
|||
|
void test1()
|
|||
|
{
|
|||
|
String s("abcdefghijklmn");
|
|||
|
|
|||
|
// 1. [] <20>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
for (size_t i = 0; i < s.size(); i++)
|
|||
|
{
|
|||
|
cout << s[i] << " ";
|
|||
|
}
|
|||
|
cout << endl;
|
|||
|
|
|||
|
// 2. iterator
|
|||
|
String::iterator it = s.begin();
|
|||
|
while (it != s.end())
|
|||
|
{
|
|||
|
cout << *it << " ";
|
|||
|
++it;
|
|||
|
}
|
|||
|
cout << endl;
|
|||
|
|
|||
|
// 3. const_iterator
|
|||
|
String::const_iterator cit = s.begin();
|
|||
|
while (cit != s.end())
|
|||
|
{
|
|||
|
cout << *cit << " ";
|
|||
|
++cit;
|
|||
|
}
|
|||
|
cout << endl;
|
|||
|
|
|||
|
// 4. <20><>Χ for
|
|||
|
for (const auto& ch : s)
|
|||
|
{
|
|||
|
cout << ch << " ";
|
|||
|
}
|
|||
|
cout << endl;
|
|||
|
|
|||
|
// 5. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> riterator
|
|||
|
String::riterator rit = s.rbegin();
|
|||
|
while (rit != s.rend())
|
|||
|
{
|
|||
|
cout << *rit << " ";
|
|||
|
--rit;
|
|||
|
}
|
|||
|
cout << endl;
|
|||
|
|
|||
|
// 6. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> const_riterator
|
|||
|
String::const_riterator crit = s.rbegin();
|
|||
|
while (crit != s.rend())
|
|||
|
{
|
|||
|
cout << *crit << " ";
|
|||
|
--crit;
|
|||
|
}
|
|||
|
cout << endl;
|
|||
|
}
|
|||
|
|
|||
|
void test2()
|
|||
|
{
|
|||
|
// Ĭ<>Ϲ<EFBFBD><CFB9>캯<EFBFBD><ECBAAF>
|
|||
|
String s1;
|
|||
|
// Ĭ<><C4AC><EFBFBD>вι<D0B2><CEB9>캯<EFBFBD><ECBAAF>
|
|||
|
String s2("Hello Lenyiin");
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
String s3(s2);
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD> << <20><><EFBFBD><EFBFBD>
|
|||
|
cout << "s1: " << s1 << endl;
|
|||
|
cout << "s2: " << s2 << endl;
|
|||
|
cout << "s3: " << s3 << endl;
|
|||
|
|
|||
|
// <20><>ֵ = <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
s1 = s2;
|
|||
|
cout << "s1: " << s1 << endl;
|
|||
|
}
|
|||
|
|
|||
|
void test3()
|
|||
|
{
|
|||
|
String s1;
|
|||
|
|
|||
|
// β<><CEB2>
|
|||
|
s1.push_back('H');
|
|||
|
s1.push_back('e');
|
|||
|
s1.push_back('l');
|
|||
|
s1.push_back('l');
|
|||
|
s1.push_back('o');
|
|||
|
cout << "s1: " << s1 << endl;
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD> size() capacity()
|
|||
|
cout << s1.size() << " " << s1.capacity() << endl;
|
|||
|
|
|||
|
// <><D7B7>һ<EFBFBD><D2BB><EFBFBD>ַ<EFBFBD>
|
|||
|
s1.append(' ');
|
|||
|
// <><D7B7>һ<EFBFBD><D2BB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
s1.append("Lenyiin");
|
|||
|
cout << "s1: " << s1 << endl;
|
|||
|
cout << s1.size() << " " << s1.capacity() << endl;
|
|||
|
|
|||
|
// +=
|
|||
|
s1 += " abc";
|
|||
|
cout << "s1: " << s1 << endl;
|
|||
|
cout << s1.size() << " " << s1.capacity() << endl;
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD> resize
|
|||
|
s1.resize(7);
|
|||
|
cout << "s1: " << s1 << endl;
|
|||
|
cout << s1.size() << " " << s1.capacity() << endl;
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD> reserve
|
|||
|
s1.reserve(20);
|
|||
|
cout << "s1: " << s1 << endl;
|
|||
|
cout << s1.size() << " " << s1.capacity() << endl;
|
|||
|
|
|||
|
// += s
|
|||
|
String s2("aaa");
|
|||
|
s1 += s2;
|
|||
|
s1.append(s2);
|
|||
|
cout << "s: " << s1 << endl;
|
|||
|
cout << s1.size() << " " << s1.capacity() << endl;
|
|||
|
|
|||
|
// insert
|
|||
|
s1.insert(1, "abc");
|
|||
|
cout << "s: " << s1 << endl;
|
|||
|
cout << s1.size() << " " << s1.capacity() << endl;
|
|||
|
s1.insert(6, s2);
|
|||
|
cout << "s: " << s1 << endl;
|
|||
|
cout << s1.size() << " " << s1.capacity() << endl;
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD>βɾ
|
|||
|
s1.pop_back();
|
|||
|
cout << "s: " << s1 << endl;
|
|||
|
cout << s1.size() << " " << s1.capacity() << endl;
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD> erase
|
|||
|
s1.erase(10, 5);
|
|||
|
cout << "s: " << s1 << endl;
|
|||
|
cout << s1.size() << " " << s1.capacity() << endl;
|
|||
|
s1.erase(3);
|
|||
|
cout << "s: " << s1 << endl;
|
|||
|
cout << s1.size() << " " << s1.capacity() << endl;
|
|||
|
}
|
|||
|
|
|||
|
void test4()
|
|||
|
{
|
|||
|
String s1("aaaa");
|
|||
|
String s2("aabb");
|
|||
|
String s3("aaaa");
|
|||
|
String s4("abaa");
|
|||
|
String s5("abcd");
|
|||
|
|
|||
|
if (s1 < s2)
|
|||
|
{
|
|||
|
cout << s1 << " < " << s2 << endl;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
cout << s1 << " >= " << s2 << endl;
|
|||
|
}
|
|||
|
|
|||
|
if (s4 > s2)
|
|||
|
{
|
|||
|
cout << s4 << " > " << s2 << endl;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
cout << s4 << " <= " << s2 << endl;
|
|||
|
}
|
|||
|
|
|||
|
if (s1 == s3)
|
|||
|
{
|
|||
|
cout << s1 << " == " << s2 << endl;
|
|||
|
}
|
|||
|
|
|||
|
if (s1 != s2)
|
|||
|
{
|
|||
|
cout << s1 << " != " << s2 << endl;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void test5()
|
|||
|
{
|
|||
|
String s("abcd Lenyiin efghi Lenyiin jklmn");
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
|
|||
|
size_t pos = s.find('b');
|
|||
|
if (pos != String::npos)
|
|||
|
{
|
|||
|
cout << "<EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD>: " << pos << endl;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
cout << "û<EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|||
|
}
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
pos = s.find("Lenyiin");
|
|||
|
if (pos != String::npos)
|
|||
|
{
|
|||
|
cout << "<EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD>: " << pos << endl;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
cout << "û<EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|||
|
}
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>
|
|||
|
pos = s.rfind('x');
|
|||
|
if (pos != String::npos)
|
|||
|
{
|
|||
|
cout << "<EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD>: " << pos << endl;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
cout << "û<EFBFBD>ҵ<EFBFBD> x !" << endl;
|
|||
|
}
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
pos = s.rfind("Lenyiin");
|
|||
|
if (pos != String::npos)
|
|||
|
{
|
|||
|
cout << "<EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD>: " << pos << endl;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
cout << "û<EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD>" << endl;
|
|||
|
}
|
|||
|
|
|||
|
// <20><>ȡ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
String s2 = s.substr(5, 7);
|
|||
|
cout << "<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: " << s2 << endl;
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD> >> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD>: ";
|
|||
|
String s3;
|
|||
|
cin >> s3;
|
|||
|
cout << "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: " << s3 << endl;
|
|||
|
}
|
|||
|
|
|||
|
int main()
|
|||
|
{
|
|||
|
//test1();
|
|||
|
//test2();
|
|||
|
//test3();
|
|||
|
//test4();
|
|||
|
test5();
|
|||
|
|
|||
|
return 0;
|
|||
|
}
|