#include <stdlib.h>
#include <string.h>
class TSimpleString
{
public:
static const size_t npos;
TSimpleString() : m_pStorage(NULL) {}
TSimpleString(const TSimpleString& s) { assign(s.m_pStorage); }
TSimpleString(const char * s, size_t n = npos) { assign(s, n); }
bool empty(void) { return (m_pStorage == NULL); }
void clear(void);
void assign(const char * s, size_t n = npos);
const char * c_str(void) { return (m_pStorage == NULL) ? "" : m_pStorage; }
private:
char * m_pStorage;
};
void TSimpleString::clear()
{
if( m_pStorage != NULL )
delete m_pStorage;
}
void TSimpleString::assign(const char * s, size_t n)
{
if( m_pStorage == s )
return;
clear();
if( n == npos )
n = ( s == NULL ? 0 : strlen(s) );
if( n > 0 )
{
m_pStorage = new char [n];
for( size_t i = 0; i < n; ++i )
m_pStorage[i] = s[i];
}
}
提示:
1,有1处编译错误
2,大概有8处严重错误
3,有2处可改进的地方
注:可能有些错误我自己还没发现
分享到:
相关推荐
标题中的“Code_笔试题_字符串压缩_”指的是一个与编程相关的笔试题目,重点在于实现字符串的压缩功能。这类问题通常出现在技术面试或招聘过程的笔试试题中,旨在考察应聘者的编程能力和对数据结构的理解。 描述中...
标题中的"C++笔试题(很全的)"表明这是一份关于C++编程语言的面试或测试题目集合,主要涉及C++的高级特性,如多态性、文件操作以及程序控制流程等方面。描述中提到了几个具体的C++知识点,下面我会详细解释这些知识...
这条语句,正确的说法是数组str的每个元素是一个字符串,总共有两个字符串“xun”和“lei”。而char str[3] = "xun";这条语句中str是一个字符数组,包含三个元素‘x’、‘u’和‘n’。char str[] = "xun";这条语句中...
《C/C++笔试题集锦》是一份涵盖了广泛C/C++知识的资源,旨在帮助求职者准备相关的技术面试和笔试。这份资料不仅包含了常见的C/C++编程题目,还深入探讨了语言的一些关键概念,如类型转换和对象模型,这对于理解和...
本资源库收录了C/C++经典问题和面试笔试题,涵盖了基础概念、指针、数组、内存操作、字符串处理、断言等多个方面。通过本资源库,读者可以深入理解C/C++语言的精髓,掌握编程基础知识,提高编程能力。 1. 基本概念...
以下是一些C++笔试题中可能会涉及到的重要知识点: 1. **基本语法与数据类型**: - C++支持基本的数据类型,如int、float、double、char等,理解它们的内存占用和取值范围。 - 掌握变量的声明、初始化和赋值,...
根据给定的中兴通讯C++/C笔试题及其描述,我们可以提炼出多个重要的IT知识点,涵盖基础语法、数据类型处理、预处理器指令、内存管理、函数调用以及字符串操作等核心领域。下面将逐一详细解析这些知识点: ### 1. ...
此部分代码展示了如何创建一个空字符串,并返回程序的退出状态。 **代码分析:** ```cpp #include int main() { std::string myStr; // 创建一个空字符串 return 1; // 返回 1 表示程序非正常退出或有错误发生 ...
"校招C&C++笔试题大全"是一个集各大公司历年校招笔试题目的资源库,专门为准备C++和C语言面试的同学们提供了一个宝贵的练习平台。这个压缩包文件包含了多种不同难度和类型的题目,旨在帮助学生全面提高对这两种编程...
这份资源包含了46家大公司的C++笔试题和答案,是为准备IT行业求职者精心整理的宝贵资料。这些题目涵盖了C++语言的基础知识、高级特性、编程技巧以及与网络和数据库相关的应用,旨在帮助求职者提升自己的技能,顺利...
C++是一种广泛应用于系统软件、应用软件、游戏开发、...总的来说,这份"C++笔试题.doc"文档是一个全面检验C++编程技能的工具,对于求职者来说,通过深入学习和练习其中的题目,可以有效提升自己的编程能力和应试技巧。
在C++编程领域,面试和笔试题经常涉及核心概念和技术,包括多态、文件操作、内存管理、程序控制流程等。以下是对给定文件中提到的一些C++知识点的详细解释: 1. **多态(Polymorphism)**: - 虚函数表(Virtual ...
### C++笔试题知识点解析 #### 题目1:文件内容逆序存储 **题目描述**: 将一个大小在1MB至10MB范围内的文件内容逆序存储到另一个文件中,即原文件的最后一个字符应存储为新文件的第一个字符。 **代码解析**: ```...
【C++笔试题详解】 1. **多态类中的虚函数表** 虚函数表是C++中实现多态性的一个关键机制。在编译时期,编译器会为包含虚函数的类创建一个虚函数表,其中包含了各个虚函数的入口地址。这个表在编译期间就已经确定...
C++笔试题大全涵盖了许多核心知识点,以下是针对题目中提到的部分进行详细解答: 一、BOOL、float、指针变量与“零值”比较的if语句: - 对于BOOL类型的flag,与“零值”(FALSE)比较的if语句为: ```cpp if (!...
本文将详细解析这份Oppo软件工程师C++笔试题中的选择题部分,涉及的知识点包括栈的基本操作、循环控制结构、二分查找算法、基本输入输出、指针与数组、友元函数、运算符重载、表达式的计算规则、操作系统基础概念、...
- **问题描述:** 给定一个字符串,找出其中最长的连续重复子串。 - **解决方案:** 可以使用双指针技术来解决这个问题,通过滑动窗口的方式找到最长的重复子串。 **深入解析:** - **滑动窗口:** 使用两个指针,...