2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
🌈个人主页:Condiscipulum Yuchen
💫个人格言:“成为自己未来的主人~”
Munera Stringe sequentia sunt quae in hoc articulo efficiemus:
- #pragma once
- #include<iostream>
- #include<assert.h>
- using namespace std;
-
- namespace bit
- {
- class string
- {
- public:
- typedef char* iterator;
- iterator begin();
- iterator end();
-
- string(const char* str = "");
- ~string();
- const char* c_str() const;
- size_t size() const;
- char& operator[](size_t pos);
- private:
- char* _str;
- size_t size;
- size_t _capacity;
- };
- }
Inter haec munera
string(const char* str = "");
Hoc modo scribendi propositum maxime est ut chordas vacuas consideret et valorem defaltam addat. Si chorda advenientis vacua est, automatice ad "0" exscriptus erit.
- const char* c_str() const;
- size_t size() const;
In his duobus codicis lineis, principale propositum addendi const est, curet ut hae duae functiones dici possint sive mensurae chordae latae in modificatione.
Superiores codices in lima titulo posuimus.
In fasciculo .cpp, ad haec munera efficienda utimur.
#include"String.h"
Fasciculi caput in initio tabulae .cpp introducimus. Quidam studentes curiosi esse possunt num cum file String.h in bibliotheca C++ pugnabit, sed effectus non est quia in directorio currenti investigabit, et Tabella hodierna iam in indicem inest.
- #define _CRT_SECURE_NO_WARNINGS
- #include"String.h"
- namespace bit
- {
- string::iterator string::begin()
- {
- return _str;
- }
- string::iterator string::end()
- {
- return _str + _size;
- }
-
- string::string(const char* str)
- :_size(strlen(str))
- {
- _str = new char[_size + 1];
- _capacity = _size;
- strcpy(_str, str);
- }
- string::~string()
- {
- delete[] _str;
- _str = nullptr;
- _size = _capacity = 0;
- }
- const char* string::c_str() const
- {
- return _str;
- }
- size_t string::size() const
- {
- return _size;
- }
- char& string::operator[](size_t pos)
- {
- assert(pos < _size);
- return _str[pos];
- }
-
- }
Haec est inserenda linea fundamentalis filum codicem.
Sequens est documentum documenti huius Stringe
- #define _CRT_SECURE_NO_WARNINGS
- #include<iostream>
- #include"String.h"
- namespace bit
- {
- void test_string1()
- {
- bit::string s1("hello world");
- cout << s1.c_str() << endl;
- for (size_t i = 0; i < s1.size(); i++)
- {
- s1[i]++;
- }
- for (size_t i = 0; i < s1.size(); i++)
- {
- cout << s1[i] << " ";
- }
- cout << endl;
- string::iterator it1 = s1.begin();
- while (it1 != s1.end())
- {
- cout << *it1 << " ";
- ++it1;
- }
- cout << endl;
- for (auto e : s1)
- {
- cout << e << " ";
- }
- cout << endl;
- bit::string s2;
- cout << s2.c_str() << endl;
- }
- }
- int main()
- {
- bit::test_string1();
-
- return 0;
- }
Re vera, ad extensionem, stratum imum eius est iterator, et iterator maxime sarcina est.
Quamdiu igitur iterator fundamentalis aedificatur, ambitus adhiberi potest.