封装string

仿照string类,实现mystring

#include <iostream>
#include<string.h>
using namespace std;

class MyString
{
    private:
       char *str;      //记录c风格的字符串
       int size=0;       //记录字符串实际长度
    public:
       //无参构造:定义了一个字符串
       MyString():size(10)
       {
           str=new char[size];      //申请空间
           strcpy(str,"");
       }

       //有参构造:定义一个字符串,并初始化
       MyString(const char *s)
       {
           size=strlen(s);         //长度
           str=new char[size+1];   //申请空间
           strcpy(str,s);
       }
       //1.判空
       bool empty();

       //2.size函数
       int my_size();

       //3.c_str函数
       char *c_str();

       //4.at函数
       char &at(int index);

       //二倍扩容

       //析构函数
       ~MyString()
       {
           delete  []str;
       }

};

//1.判空
bool MyString::empty()
{
    return strlen(str)==0;
}

//2.size字符串实际长度函数
int MyString::my_size()
{
  //  size=strlen(str);
    return size;
}

//3.c_str函数 将c++风格的字符串向c语言风格的字符串进行转换
char* MyString::c_str()
{
    return str;
}

//4.at函数
char &MyString::at(int index)
{
    if(index<0 || index>=size)
    {
        cout<<"error"<<endl;
    }
    return str[index];
}



/*************************主函数******************************/
int main()
{
    MyString str1("ni hao");

    int len=str1.my_size();
    cout<<"str1大小:"<<len<<endl;

    cout<<str1.at(5)<<endl;
    //判断是否为空
    if(str1.empty())
    {
        cout<<"字符串为空"<<endl;
    }
    else
    {
        cout<<"字符串非空"<<endl;
    }

    return 0;
}

思维导图

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Java 中,String 类是一个非常重要的类,它用于处理字符串。以下是一些 String 类的特点: 1. String 类是不可变的 String 类的实例是不可变的,一旦一个 String 对象被创建,它的值就无法被修改。例如,下面的代码创建了一个 String 对象: ``` String str = "Hello"; ``` 如果要将 str 的值修改为 "World",则需要重新创建一个新的 String 对象。这是因为 String 类被设计为不可变的,这样可以提高安全性和线程安全性。 2. 字符串的比较 在 Java 中,可以使用 equals() 方法来比较两个字符串是否相等。例如: ``` String str1 = "Hello"; String str2 = "World"; if (str1.equals(str2)) { System.out.println("str1 和 str2 相等"); } else { System.out.println("str1 和 str2 不相等"); } ``` 还可以使用 equalsIgnoreCase() 方法来忽略字符串中的大小写。 3. 字符串的拼接 在 Java 中,可以使用加号(+)来拼接字符串。例如: ``` String str1 = "Hello"; String str2 = "World"; String str3 = str1 + " " + str2; System.out.println(str3); ``` 上面的代码会输出 "Hello World"。 4. 字符串的截取 可以使用 substring() 方法来截取字符串。例如: ``` String str = "Hello World"; String subStr = str.substring(6, 11); System.out.println(subStr); ``` 上面的代码会输出 "World",其中 substring() 方法的第一个参数是起始索引,第二个参数是结束索引(不包括在内)。 5. 字符串的查找 可以使用 indexOf() 和 lastIndexOf() 方法来查找字符串中某个字符或子字符串的位置。例如: ``` String str = "Hello World"; int index = str.indexOf("o"); int lastIndex = str.lastIndexOf("o"); System.out.println(index); // 输出 4 System.out.println(lastIndex); // 输出 7 ``` 其中 indexOf() 方法返回第一个匹配字符或子字符串的位置,lastIndexOf() 方法返回最后一个匹配字符或子字符串的位置。 除此之外,String 类还有许多其他的方法,例如 trim() 方法可以去除字符串两端的空格,toUpperCase() 方法可以将字符串转换为大写,toLowerCase() 方法可以将字符串转换为小写,length() 方法可以获取字符串的长度等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值