String/Windows_String/String.cpp

253 lines
4.0 KiB
C++
Raw Normal View History

#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;
}