`
wengshanjin
  • 浏览: 23930 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

原创C++笔试题,查找一个字符串类不正确的地方

阅读更多
#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处可改进的地方

注:可能有些错误我自己还没发现
分享到:
评论
3 楼 wyong1021 2010-06-29  
电热熔突然通过人头
2 楼 xuqin1019 2010-06-19  
PS:好像没有编译错误啊
1 楼 xuqin1019 2010-06-19  
12行 改为 : return (p_mStorage==NULL || strlen(p_mStorage)==0);
24行后面添加一句 : m_pStorage=NULL;   
38行 改为 :  m_pStorage = new char [n+1];
39-40那块赋值语句可以改为 strncpy (m_pStorage,s,n);
40行 后面添加 : m_pStorage[i]='\0';

其他的嘛,暂时还没看出来。。。。

相关推荐

    Code_笔试题_字符串压缩_

    标题中的“Code_笔试题_字符串压缩_”指的是一个与编程相关的笔试题目,重点在于实现字符串的压缩功能。这类问题通常出现在技术面试或招聘过程的笔试试题中,旨在考察应聘者的编程能力和对数据结构的理解。 描述中...

    C++笔试题(很全的)

    标题中的"C++笔试题(很全的)"表明这是一份关于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++笔试题库 (整理版)

    本资源库收录了C/C++经典问题和面试笔试题,涵盖了基础概念、指针、数组、内存操作、字符串处理、断言等多个方面。通过本资源库,读者可以深入理解C/C++语言的精髓,掌握编程基础知识,提高编程能力。 1. 基本概念...

    C++笔试题(应届毕业生必看)

    以下是一些C++笔试题中可能会涉及到的重要知识点: 1. **基本语法与数据类型**: - C++支持基本的数据类型,如int、float、double、char等,理解它们的内存占用和取值范围。 - 掌握变量的声明、初始化和赋值,...

    中兴通讯C++C笔试题附有答案

    根据给定的中兴通讯C++/C笔试题及其描述,我们可以提炼出多个重要的IT知识点,涵盖基础语法、数据类型处理、预处理器指令、内存管理、函数调用以及字符串操作等核心领域。下面将逐一详细解析这些知识点: ### 1. ...

    中恒博瑞c++笔试题20150331

    此部分代码展示了如何创建一个空字符串,并返回程序的退出状态。 **代码分析:** ```cpp #include int main() { std::string myStr; // 创建一个空字符串 return 1; // 返回 1 表示程序非正常退出或有错误发生 ...

    校招C&C++笔试题大全

    "校招C&C++笔试题大全"是一个集各大公司历年校招笔试题目的资源库,专门为准备C++和C语言面试的同学们提供了一个宝贵的练习平台。这个压缩包文件包含了多种不同难度和类型的题目,旨在帮助学生全面提高对这两种编程...

    46家大公司笔试题+收集的各大公司c++笔试题合集 全部附有答案

    这份资源包含了46家大公司的C++笔试题和答案,是为准备IT行业求职者精心整理的宝贵资料。这些题目涵盖了C++语言的基础知识、高级特性、编程技巧以及与网络和数据库相关的应用,旨在帮助求职者提升自己的技能,顺利...

    C++笔试题.doc

    C++是一种广泛应用于系统软件、应用软件、游戏开发、...总的来说,这份"C++笔试题.doc"文档是一个全面检验C++编程技能的工具,对于求职者来说,通过深入学习和练习其中的题目,可以有效提升自己的编程能力和应试技巧。

    C++面试题 C++笔试题(微软、IBM、华为、微创、网通、百度)

    在C++编程领域,面试和笔试题经常涉及核心概念和技术,包括多态、文件操作、内存管理、程序控制流程等。以下是对给定文件中提到的一些C++知识点的详细解释: 1. **多态(Polymorphism)**: - 虚函数表(Virtual ...

    C++笔试题,有一部分答案,学习

    ### C++笔试题知识点解析 #### 题目1:文件内容逆序存储 **题目描述**: 将一个大小在1MB至10MB范围内的文件内容逆序存储到另一个文件中,即原文件的最后一个字符应存储为新文件的第一个字符。 **代码解析**: ```...

    各大公司C++笔试题以及答案

    【C++笔试题详解】 1. **多态类中的虚函数表** 虚函数表是C++中实现多态性的一个关键机制。在编译时期,编译器会为包含虚函数的类创建一个虚函数表,其中包含了各个虚函数的入口地址。这个表在编译期间就已经确定...

    C++笔试题大全

    C++笔试题大全涵盖了许多核心知识点,以下是针对题目中提到的部分进行详细解答: 一、BOOL、float、指针变量与“零值”比较的if语句: - 对于BOOL类型的flag,与“零值”(FALSE)比较的if语句为: ```cpp if (!...

    oppo软件工程师C++笔试题之选择

    本文将详细解析这份Oppo软件工程师C++笔试题中的选择题部分,涉及的知识点包括栈的基本操作、循环控制结构、二分查找算法、基本输入输出、指针与数组、友元函数、运算符重载、表达式的计算规则、操作系统基础概念、...

    C++/C程序员笔试题

    - **问题描述:** 给定一个字符串,找出其中最长的连续重复子串。 - **解决方案:** 可以使用双指针技术来解决这个问题,通过滑动窗口的方式找到最长的重复子串。 **深入解析:** - **滑动窗口:** 使用两个指针,...

Global site tag (gtag.js) - Google Analytics