C++ 5.22 day1

发布于:2025-05-26 ⋅ 阅读:(145) ⋅ 点赞:(0)

每日一练

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>

using namespace std;

class MyString{

	char* p;
	public:
	// 调用
	char* getName() const{
		return p;
	}
	//修改
	void setName(const char* str){
		strcpy(p,str);
	}

	//初始化 一个 字符串
	MyString(const char* str){
		p=(char*)malloc(100);
		strcpy(p,str);
	}
	//输出
	void show(){
		cout << p << endl;
	}
	// copy  重新赋值
	void copy(const char* str){
		strcpy(p,str);
	}
	void copy(MyString pptr){
		strcpy(p,pptr.getName());
	}
	//append  追加
	void append(const char* str){
		strcat(p,str);
	}
	void append(MyString pptr){
		strcat(p,pptr.getName());
	}

	//compare 比较
	bool compare(const char* str){
		cout << p << endl;
		cout << str << endl;
		return strcmp(p,str);
	}
	bool compare(MyString pptr){
		cout << p << endl;
		cout << pptr.getName() << endl;
		return strcmp(p,pptr.getName());
	}

	//析构函数 最后 释放
	~MyString(){
		free(p);
	}
};

int main(int argc, const char *argv[])
{
	MyString  str = "hello";
	MyString ptr = "world-ptr";
	str.show();

	str.copy("world");
	str.show();
	str.copy(ptr);
	str.show();

	str.append("huaq");
	str.show();
	str.append(ptr);
	str.show();

	str.setName("world-ptr1");
	cout <<str.compare("world") << endl;
	cout << str.compare(ptr) << endl;
	return 0;
}

#include <2503.h>
#include <iostream>
#include <fstream>
using namespace std;

class File{

	int fd;
	char *p=NULL;
	public:
	// 初始
	File(const char* pwd,int  rd)
	{
		fd = open(pwd,rd);
	}

	//写入
	void wrte(string str){
		const char* ptr = str.c_str(); 
		cout << "["<< ptr <<"]" << endl;
		write(fd,ptr,sizeof(ptr));
	}


	//读取
	string red(int t){
		p = (char*) malloc(100);

		lseek(fd,0,SEEK_SET);
		size_t st= t;
		read(fd,p,st);

		cout << "读到:[" << p << "]" << endl;
		string  m = p;

		return m;
	}
	//结束 关闭
	~File(){
		close(fd);
		if(p!=NULL)
		{
			free(p);
		}
	}


};

int main(int argc, const char *argv[])
{
	//写入文件
	File file("./1.txt", O_WRONLY);
	string str = "hello";
	file.wrte(str);

	//读取文件
	File fl("./2.txt",O_RDONLY);
	string ptr = fl.red(50);
	cout << "ptr = [" << ptr << "]" << endl;

	return 0;
} 


网站公告

今日签到

点亮在社区的每一天
去签到