C++自己实现一个String类】的更多相关文章

C++自己实现一个String类(构造函数.拷贝构造函数.析构函数和字符串赋值函数) #include <iostream> #include <cstring> using namespace std; class String{ public: // 默认构造函数 String(const char *str = nullptr); // 拷贝构造函数 String(const String &str); // 析构函数 ~String(); // 字符串赋值函数 St…
今天帮着一位大二的学弟写了一个String的类,后来一想这个技术点,也许不是什么难点,但是还是简单的记录一些吧! 为那些还在路上爬行的行者,剖析一些基本的实现..... 内容写的过于简单,没有涉及到其他格式的如考虑utf_8.这儿单纯的考虑了char的使用....... #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<stdlib.h> #include<string.h> #include<…
实现要实现:构造,析构,拷贝构造,赋值的功能 1. 提供构造函数 string(), string(const string & str),string(const  char * str), 2. 析构函数: ~ string() 3. 成员函数(重载赋值函数):string &operator=(const string & str); 利用已有的string对象赋值 string & operator=(const char * str);// 直接用字符串赋值用ch…
#include "stdafx.h" #include<iostream> #include<string.h> using namespace std; //类的成员函数中,有一些是加了const修饰符的,表示这个函数不会对类的成员进行修改,一些函数的输入参数也加了const修饰,表示该函数不会改变这个参数的值 class String { public: String(const char *str = NULL); //通用构造函数,没值的时候,用NUL…
直接贴代码吧,这段时间准备面试也正好练习了一下. class String { public: String(const char *str = ""); ~String(void); String(const String &other); String &operator =(const String &other); size_t size(void) const; const char *c_str(void); private: char *m_str…
为了复习c++知识,简单的实现一个string类,类名为CMyString 环境说明:windows 7 64位 和 CentOS Linux release 7.6.1810 (Core) 开发工具:Visual Studio 2015 和 g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36) CMyString类的头文件CMyString.h #include <iostream> #ifndef __C_MY_STRING__ #define __C_M…
String有两种实例化方式,一种是通过直接赋值的方式,另外一种是使用标准的new调用构造方法完成实例化. public class StringDemo { public static void main(String[] args) { String str1="hello"; String str2="hello"; String str3="hello"; System.out.println(str1==str2); System.ou…
C++大大增强了对字符串的支持,除了可以使用C风格的字符串,还可以使用内置的数据类型 string.string 类处理起字符串来会方便很多,完全可以代替C语言中的 char 数组或 char 指针. 使用 string 类需要包含头文件 <string>,下面我们逐一介绍该类的功能. string 的几种用法: #include <iostream> #include <string> using namespace std; int main(){ string s…
C++ 的一个常见面试题是让你实现一个 String 类,限于时间,不可能要求具备 std::string 的功能,但至少要求能正确管理资源.具体来说: 能像 int 类型那样定义变量,并且支持赋值.复制. 能用作函数的参数类型及返回类型. 能用作标准库容器的元素类型,即 vector/list/deque 的 value_type.(用作 std::map 的 key_type 是更进一步的要求,本文从略). 换言之,你的 String 能让以下代码编译运行通过,并且没有内存方面的错误. vo…
大家都知道,在JAVA中字符串一旦声明就不可改变,如果尝试修改字符串的内容,将会重新实例化一个新的字符串对象,这也是为了安全性和效率. 由于字符串在程序之中被大量使用,所以JAVA引入了一个字符串常量池,所有被声明的字符串都会保存在字符串常量池中,如果下次使用到同样的字符串,就会从常量池中获取.由于字符串可以用来表示很多重要的信息,例如用户名,密码,URL地址等,如果被引用的字符串可以随意修改,那么这些信息也会变得非常不安全. 但是,反射让这一切发生了变化,字符串并不是一种基本数据类型,他的底层…