代码分析c++中string类

2020-01-06 18:26:03于丽

(3)测试函数main.cpp


#include "MyString.h"
#include <iostream>
using namespace std;

int main()
{
  int n;
  int choose = 1;
  int p,l;
  char cs[100];
  MyString s1;
  MyString s2("hello");
  MyString s3 = "HELLO";
  cout << "***** welcome *****n";
  cout << "******* MADE BY zyp **********n";
  cout << "s1= " << s1 << "s2= " << s2 << "s3= " << s3 << endl;
  cout << "请输入一个长度小于100的字符串:例如worldn";
  cin >> s1;
  s1 = s1;
  //s1 = s1+s1;
  s1 += s1;
  MyString s4(s1);
  s4.append(s1);
  s2.insert(2,s3);
  s1.erase(4,4);
  s1.assign(s2,1,7);
  cout << "s1= " << s1 << "s2= " << s2 << "s3= " << s3 << "s4= " << s4 << endl;
  s2 = s4.substr(2,7);
  cout << "s4[3]= " << s4[3] << s4.length() << (s1>=s2) << "s4.substr() " << s2 << endl;
  cout << "s1.find_first_of(beLE,2):" << s1.find_first_of("beLE",2) << ",s1.find_first_of(a,3):" << s1.find_first_of('a',3) << ",s1.find_first_of(s3,2):" << s1.find_first_of(s3,2) << endl;
  MyString s5(5,'b');
  s5 += s5;
  //s5.append(s5);// 不知道为什就是不能append
  cout << "s5 = " << s5 << "s5.find_first_not_of(aeHLEOl,2):" << s5.find_first_not_of("aeHLEOl",2) << "s5.find_first_not_of(aeHLEOl,0):" << s5.find_first_not_of("aeHLEOl") << endl;
  cout << "s5.find_first_not_of(s1,2):" << s5.find_first_not_of(s1,2) << "s5.find_first_not_of(b,2):" << s5.find_first_not_of('b',2) << endl;
  swap(s1,s5);
  s5.replace_all('a','J');
  MyString s6("LLO");
  cout << s1 << "," << s5 << "s5.find(LLO,0) " << s5.find("LLO",0) << "s5.find(s6,0) " << s5.find(s5) << endl;
  cout << npos << endl;
  return 0;
}

三:感悟

(1)耗时将近2天的实现了它,自己与其从中学到了很多,倒不如说是重新认识了string类;

(2)自己知道这个简单的string类,距离string源代码还差的很远很远;但是它帮助我更好的理解了string类,至少会简单的应用了。

(3)简单的实现了一下string类,参照的是STL源码,但是自己理解的还是不够深,难免有一些错误,请各位指教,万分感谢!

(4)下一步进军list


注:相关教程知识阅读请移步到C++教程频道。