c++实现字符串类的增删改查

#include<iostream>
using namespace std;
class mystring{
public:
mystring():mystr(NULL){}
//构造函数
mystring(char*str){
if(mystr!=NULL) {
mystr=NULL;
}
mystr=new char[sizeof(str)+1];
strcpy(mystr, str);
}
//拷贝构造
mystring(mystring& myst){
if(mystr!=NULL) {
mystr=NULL;
}
mystr=new char[sizeof(myst.mystr)+1];
strcpy(mystr, myst.mystr);
}
//赋值运算符
mystring& operator = (mystring & str)
{
if(this != & str)
{
if(mystr!=NULL) {
mystr=NULL;
}
mystr=new char[sizeof(str.mystr)+1];
strcpy(mystr, str.mystr);
}
return *this;
}
//析构函数
~mystring(){
if(mystr!=NULL) {
delete [] mystr;
mystr=NULL;
}
}
//重置函数
char* chongzhi(char* str){
if(mystr!=NULL) {
delete [] mystr;
mystr=NULL;
}
mystr=new char[sizeof(str)+1];
strcpy(mystr, str);
return mystr;
}
//清空函数
bool qingkong(){
if(mystr!=NULL) {
delete [] mystr;
mystr=NULL;
}
return true;
}
//返回长度
int changdu(){
if(mystr==NULL) return 0;
return (int)strlen(mystr);
}
//返回索引
char index(int index){
if(mystr==NULL) return false;
return mystr[index];
}
bool index2(int index, char ch){
if(mystr==NULL) return false;
mystr[index]=ch;
return true;
}
//打印整个字符串
char* dayin(){
if(mystr==NULL) return "你没有赋值";
return mystr;
}
//查找字符位置
char find(int a){
return mystr[a];
}
char* dayinzfhuan(int a){
char* p= &mystr[a];
return p;
}
//插入字符
bool insert(int a, char * p){
char * temp;
temp =(char *)malloc(sizeof(mystr)+sizeof(char));
for (int i=0; i<a; i++) {
temp[i]=mystr[i];
}
temp[a]=*p;
for (int i = a+1; i<strlen(mystr); i++) {
temp[i]=mystr[i];
}
delete [] mystr;
mystr = temp;
return true;
}

//删除字符
bool delet(int a){
char * temp;
temp =(char *)malloc(sizeof(mystr)-sizeof(char));
for (int i=0; i<a; i++) {
temp[i]=mystr[i];
}
for (int i = a+1; i<strlen(mystr); i++) {
temp[i-1]=mystr[i];
}
delete [] mystr;
mystr = temp;
return true;
}
private:
char* mystr;
};

int main()
{
mystring mystr9("allenboy");
mystr9.delet(3);
mystr9.insert(3, "A");
cout<<mystr9.dayin()<<endl;
//
// mystring* mystr = new mystring("str");
// mystr->changdu();
// mystr->chongzhi("allen");
// mystr->index2(3, ‘A‘);
// cout<<mystr->changdu()<<endl;
// cout<<mystr->index(3)<<endl;
// cout<<mystr->dayin()<<endl;
// mystring mystr2 = *mystr;
// mystring mystr22(*mystr);
// cout<<mystr2.dayin()<<endl;
// mystr2.index2(3, ‘B‘);
// cout<<mystr->dayin()<<endl;
// cout<<mystr2.dayin()<<endl;
// mystring mystr3 =*mystr;
// mystring mystr4("allenboy");
// mystring mystr5;
// mystring mystr6 = mystr4;//调用复制构造函数
// //初始化才会调用复制构造函数,其它的都调用赋值运算符。
// mystring mystr7;
// mystring mystr8;
// mystr8=mystr4; //调用赋值运算符
// cout<<mystr4.dayin()<<endl;
// cout<<mystr5.dayin()<<endl;
// cout<<mystr8.dayin()<<endl;
// cout<<mystr6.dayin()<<endl;
// cout<<mystr6.dayinzfhuan(3)<<endl;
// cout<<mystr6.find(3)<<endl;
return 0;
}

原文地址:http://blog.51cto.com/haidragon/2067586

时间: 2024-11-09 03:51:57

c++实现字符串类的增删改查的相关文章

板邓:wordpress中wpdb类数据库增删改查操作

wordpress中wpdb可以轻松实现数据库的增删改查,wordpress开发者必须会用的类! 案例: 1.使用wpdb类插入自己创建的一个数据表(wp_person): global $wpdb; $data=array( 'denglu_id' => $_POST['denglu_id'], 'password' => $_POST['password'], 'user_name' => $_POST['user_name']); $wpdb->insert($wpdb-&g

Ado.net中简单的DBHelper类(增删改查)

private static string connString = "server=.;database=hotel;uid=aa;pwd=123";//最好从配置文件中取出 public static SqlConnection conn = new SqlConnection(connString); //公用的增删改方法 public static bool ZhengShanGai(string sql) { bool flag = false; SqlCommand com

3——字符串类型(增删改查)

字符串 增 查 st.find(字符,StartIndex,EndIndex) # 返回查找到的字符串的索引位置,如果未找到将返回-1 st.count(字符) # 返回查找并统计这个字符串的数量 st.index(字符) # 返回查找的字符串的索引位置,如果未找到将报错,推荐使用str.find st.isdigit() # 判断当前字符串是否由纯数字组成返回True 或 False st.isalpha() # 判断当前字符串是否由纯字符组成 返回True 或 False st.islowe

php 操作sqlite类。增删改查,pdo链接

<p>直接代码:</p><p>注意:一定要写好数据库保存路径</p> <?php // sqlite分页类 class SqliteDB{ public function __construct(){ // 初始化数据库,并且连接数据库 数据库配置 $this->db = new PDO('sqlite:'.dirname(__FILE__).'\log.db'); $this->table_name=$tab; $this->tab

抽取JDBC工具类并增删改查

抽取工具类: package demo; /* * 工具类 */ import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class JDBCUtils1 { public static Connection getConnection() { Connection conn = null; try

关于后盾网yii框架的学习小结(10)--使用AR类的增删改查

创建新的数据库的语句 <?php class CategoryController extends Controller{ public function filters(){ return array( 'accessControl', ); } public function accessRules(){ return array( //更加具体化 // array( // 'allow', // 'actions'=>array('del','add'), // 'users' =>

类(面向对象、增删改查、继承、多态、封装、反射)

类的增删改查可以操作类里面的函数.数据属性,实例. 1.函数与类的区别 函数实现功能的模块化 类是实现功能和数据的模块化 ——init——类的构造:初始化类,实例化的时候自动执行2.类用法 4.什么是类, 类是把一类事物的相同的特征和同一动作整合到一类,类是抽象的5.什么是对象 对象就是基于类创建的一种事物,也是特征和动作整合到一起的6.面向对象 就是__init__独特构造7.类和对象的关系 对象都是类产生的.8.实例化:有类产生的过程叫实例化9.新式类类名后面括号里加object10.什么是

Android的SQLiteDataBase小项目,实现user类登陆注册以及student类增删改查

关于SQLiteDataBase这块,大体有两种主要的实现方式,一种是不使用Helper类的方式,此种方式存在一个弊端,即不能oncreate两次,如果重复使用oncreate的button,则会报错,所以为了避免这种错误,在此项目中使用类继承SQLiteOpenHelper的方式进行SQLite3小型数据库的小项目开发,简单的实现登陆注册,以及对特定vo类的增删改查,中间还夹杂了ListView,ArrayAdapter,以及Intent的散知识点. 以下为正文:首先介绍以下我写的项目的框架,

beego框架配合easyui实现增删改查及图片上传

demo目录: upload文件夹主要放置上传的头像文件,main是主文件,所有效果如下: 主页面: 具体代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>基于golang的后台管理系统</title> <link rel="stylesheet" type="t