代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
C
】
自己实现的string类
作者:
LAST_MAN
/ 发布于
2012/6/25
/
602
<div>class _string { friend std::istream& operator>>(std::istream& is, _string& a); friend std::ostream& operator<<(std::ostream& os,_string& a); public: _string() //???????? { length = 0; b=new char[1]; b[0]='\0'; } _string(char *a); //?????? _string(int n,char a); ~_string(); //???????? _string(_string &a); //????????? int size(){return length;} //???????? _string operator+(const _string& a); //????'+'?????? _string& operator+=(const _string& a); //????'+='?????? _string& operator=(const _string& a); //???????????? char& operator[]( int n); //?????±?????? _string substr(int pos,int n); //????????? _string substr(int pos); //?????????</div> <div> private: char *b; int length; }; </div> <div></div> <div> <div></div> <div></div> <div>// _string.cpp : ??????????ó???????? //</div> #include "stdafx.h" #include<iostream> #include<string.h> #include"_string.h" #include<stdlib.h> using namespace std;</div> <div>_string::_string(char *a) //?????? { length = strlen(a); b = new char[length+1]; for(int i= 0;i<length;i++) { b[i] = a[i]; } b[length] = '\0'; } <div>_string::_string(int n,char a) { b=new char[n+1]; for(int i= 0;i<n;i++) { b[i] =a; } b[n] = '\0'; } <div>_string::~_string() { delete []b; length=0; } <div>_string::_string(_string &a) { length=a.size(); b=new char [length+1]; for(int i = 0;i<length;i++) { b[i] = a.b[i]; } b[length] = '\0'; } <div>_string _string::operator+(const _string& a) { int newLen = length+a.length; char *str; str = new char[newLen+1]; int count = 0; for(int i = 0;i<length;i++) { str[i] = this->b[i]; count++; } for(int i =0;count<newLen;count++,i++) { str[i] = a.b[i]; } str[newLen] = '\0'; _string temp(str); return temp; } <div>_string& _string:: operator+=(const _string& a) { int newLen = length+a.length; char *str; str = new char[newLen+1]; int count = 0; for(int i = 0;i<length;i++) { str[i] = this->b[i]; count++; } for(int i =0;count<newLen;count++,i++) { str[i] = a.b[i]; } str[newLen] = '\0'; _string temp(str); *this=temp; return *this; } _string& _string:: operator=(const _string &a) { if(this==&a) return *this;</div> <div> delete []b; length = a.length; b = new char[length+1]; for(int i = 0;i<length;i++) { b[i] = a.b[i]; } b[length] = '\0'; return *this;</div> <div>} <div> char& _string:: operator[]( int n) { if(n>length) return b[length-1]; else return b[n]; } <div> ostream& operator<<(ostream& os, _string& a) { os<<a.b; return os; } istream& operator>>(std::istream& is, _string& a) { is>>a.b ; a.length=strlen(a.b); return is; } <div>_string _string::substr(int pos, int n) { char *p = new char[n+1]; for(int i=0;i<n;i++) { p[i]=b[pos]; pos++; } p[n]='\0'; _string k(p); k.length=n; return k; } _string _string::substr(int pos) { int len=length; char *p=new char[len-pos+1]; int t=pos; for(int i=0;t<len;t++,i++) { p[i]=b[t]; } p[t]='\0'; _string k(p); k.length=len-pos; return k; } <div></div> <div></div> <div></div> #include "stdafx.h" #include<iostream> #include"_string.h"</div> <div>using namespace std; int main() { /*_string a("1234"); cout<<a.size()<<endl; _string b("5678"); a+=b; cout<<a.size()<<endl; _string aa("111"); _string bb("222"); _string c; c=aa+bb; cout<<"c size 1 "<<c.size()<<endl; c=aa; cout<<"c size 2 "<<c.size()<<endl; c="1234567"; cout<<"c size 3 "<<c.size()<<endl; cout<<c<<endl; _string xxx(10,'2'); cout<<"xxx is "<<xxx<<endl; _string str; cout<<"??????str"<<endl; cin>>str; cout<<"?????????:"; cout<<str<<endl; cout<<"?????????????: "<<str.size()<<endl; cout<<"substr"<<endl; _string abc("1234567"); _string xx=abc.substr(3,3); cout<<"xx is "<<xx<<endl; _string qq=abc.substr(3); cout<<"qq is "<<qq<<endl;*/ _string a; cin>>a; cout<<a; return 0; } <div></div> <div></div> <div>// stdafx.h : ?????????????????? // ?????????õ????????? // ?????????????? //</div> <div>pragma once</div> #include "targetver.h"</div> #include <stdio.h> #include <tchar.h></div> <div></div> <div>// TODO: ???????ó???????????????? </div> <div></div> <div></div> <div>// stdafx.cpp : ??????????????????? // _string.pch ??????????? // stdafx.obj ????????????????</div> #include "stdafx.h"</div> <div>// TODO: ?? STDAFX.H ?? // ?????κ?????????????????????????????</div> </div>
试试其它关键字
string类
同语言下
.
获取手机通讯录 iOS去除数字以外的所有字符
.
异步加载音乐等资源
.
交通罚单管理系统
.
freemark实现,简单的替换
.
计算斐波那契数列
.
base64解码 包括解码长度
.
图像显示
.
冒泡排序
.
输入十进制数,输出指定进制
.
链式栈
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
LAST_MAN
贡献的其它代码
(
2
)
.
生成任意阶幻方并输出到Excel
.
自己实现的string类
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3