zoukankan      html  css  js  c++  java
  • 第十八章 30限制数组越界 简单

    // 30限制数组越界
    // 该函数有一个参数即数组的下载length, 下标值length会传递到函数体中进行判断,假如下标超过数组的长度,那么返回数组长度-1,也就是最后一个可见字符,假如不超过数组长度,那么返回该下标的数组元素
    /*#include <iostream>
    using namespace std;
    class String
    {
    public:
    	String(); //默认的构造函数
    	String(const char*const ch); //构造带值的string
    	int getlen()const { return len;}   //读取长度
    	const char *getstr()const{ return str;} //读取字符串    
    	//这里是可以修改的
    	char &operator[](int length);	
    private:
    	int len;
    	char *str;
    };
    //创建一个空的str变量
    String::String()
    {
        len = 0;
    	str = new char[1];
    	str[0] = '\0';
    };
    String::String(const char*const ch)
    {
    	cout<<"带一个参数的构造函数"<<endl;
    	len = strlen(ch);
    	str = new char[len+1];
    	for(int i=0; i<len; i++){
    	   str[i] = ch[i];
    	}
    	str[len] = '\0';
    };
    
    char & String::operator[](int length)
    {
    		if(length > len){
    		   return str[len-1]; //返回可见字符的值
    		}else{
    		   return str[length];
    		}
    };
    int main()
    {
    	String str;
    	cout<<str.getstr()<<endl;
    	cout<<"str:"<<str.getlen()<<endl;
    
    	String s1("hello word");
    	//cout<<s1.getlen()<<endl;
    	cout<<s1.getstr()<<endl;
    	cout<<"s1:"<<s1.getlen()<<endl;
    
    	char*temp = "help me";
    	String s3(temp);
    	cout<<s3.getstr()<<endl;
    	cout<<"s3:"<<s3.getlen()<<endl;
    	
    	//越界的值
    	cout<<"越界的值"<<endl;
    	cin>>s3[999];
    	cout<<s3.getstr()<<endl;
    	cout<<"s3:"<<s3.getlen()<<endl;
    	cout<<"s3[999]:"<<s3[999]<<endl;
        return 0;
    }*/
    

      

  • 相关阅读:
    kernel reported iSCSI connection 1:0 error (1022-Invalid or unknown error code) state (3)
    [Visual Studio] pdb 和 exe 不match的情况
    What is the Makefile Target `.c.o` for?
    [Inno Setup] 区分Windows版本的一个例子
    CFLAGS [Makefile]
    Python 安装第三方插件时,报错 unable to find vcvarsall.bat
    【Inno Setup】Windows 版本号
    正则应用
    正则search与match的区别
    还是正则基础
  • 原文地址:https://www.cnblogs.com/xiangxiaodong/p/2700764.html
Copyright © 2011-2022 走看看