欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

c語(yǔ)言怎樣構(gòu)造字符函數(shù),c語(yǔ)言中構(gòu)造函數(shù)

如何用c語(yǔ)言實(shí)現(xiàn)CString的構(gòu)造函數(shù),析構(gòu)函數(shù)和賦值函數(shù)

類是編程人員表達(dá)自定義數(shù)據(jù)類型的C++機(jī)制。它和C語(yǔ)言中的結(jié)構(gòu)類似,C++類

創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元吉安做網(wǎng)站,已為上家服務(wù),為吉安各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

支持?jǐn)?shù)據(jù)抽象和面向?qū)ο蟮某绦蛟O(shè)計(jì),從某種意義上說(shuō),也就是數(shù)據(jù)類型的設(shè)

計(jì)和實(shí)現(xiàn)。

那么

String

類的原型如下

class

String

{

public:

String(const

char

*str=NULL);

//構(gòu)造函數(shù)

String(const

String

other);

//拷貝構(gòu)造函數(shù)

~String(void);

//析構(gòu)函數(shù)

String

operator=(const

String

other);

//等號(hào)操作符重載,賦值函數(shù)

ShowString();

private:

char

*m_data;

//字符指針

};

String::~String()

{

delete

[]

m_data;

//析構(gòu)函數(shù),釋放地址空間

}

String::String(const

char

*str)

{

if

(str==NULL)//當(dāng)初始化串不存在的時(shí)候,為m_data申請(qǐng)一個(gè)空間存放'/0';

{

m_data=new

char[1];

*m_data='/0';

}

else//當(dāng)初始化串存在的時(shí)候,為m_data申請(qǐng)同樣大小的空間存放該串;

{

int

length=strlen(str);

m_data=new

char[length+1];

strcpy(m_data,str);

}

}

String::String(const

String

other)//拷貝構(gòu)造函數(shù),功能與構(gòu)造函數(shù)類似。

{

int

length=strlen(other.m_data);

m_data=new

[length+1];

strcpy(m_data,other.m_data);

}

String

String::operator

=(const

String

other)

//賦值函數(shù)

{

if

(this==other)//當(dāng)?shù)刂废嗤瑫r(shí),直接返回;

return

*this;

delete

[]

m_data;//當(dāng)?shù)刂凡幌嗤瑫r(shí),刪除原來(lái)申請(qǐng)的空間,重新開始構(gòu)造;

int

length=sizeof(other.m_data);

m_data=new

[length+1];

strcpy(m_data,other.m_data);

return

*this;

}

String::ShowString()//由于m_data是私有成員,對(duì)象只能通過public成員函數(shù)來(lái)訪問;

{

coutthis-m_dataendl;

}

測(cè)試一下:

main()

{

String

AD;

char

*

p="ABCDE";

String

B(p);

AD.ShowString();

AD=B;

AD.ShowString();

}

c程序編寫函數(shù)(字符串)

main里面自己寫寫

#include stdio.h

#include malloc.h

typedef struct snode

{

char data;

struct snode *next;

} LinkStrNode;

int StrLength(LinkStrNode *s) //求串長(zhǎng)

{

int i=0;

LinkStrNode *p=s-next;

while (p!=NULL)

{ i++;

p=p-next;

}

return i;

}

LinkStrNode *DelStr(LinkStrNode *s,int i,int j) //串刪去

{

int k;

LinkStrNode *str,*p=s-next,*q,*r;

str=(LinkStrNode *)malloc(sizeof(LinkStrNode));

str-next=NULL;

r=str; //r指向新建鏈表的尾結(jié)點(diǎn)

if (i=0 || iStrLength(s) || j0 || i+j-1StrLength(s))

return str; //參數(shù)不正確時(shí)返回空串

for (k=0;ki-1;k++) //將s的前i-1個(gè)結(jié)點(diǎn)復(fù)制到str

{ q=(LinkStrNode *)malloc(sizeof(LinkStrNode));

q-data=p-data;

r-next=q;r=q;

p=p-next;

}

for (k=0;kj;k++) //讓p沿next跳j個(gè)結(jié)點(diǎn)

p=p-next;

while (p!=NULL) //將結(jié)點(diǎn)p及其后的結(jié)點(diǎn)復(fù)制到str

{ q=(LinkStrNode *)malloc(sizeof(LinkStrNode));

q-data=p-data;

r-next=q;r=q;

p=p-next;

}

r-next=NULL;

return str;

}

int main()

{

SqString s;

int i,j,k;

}

用C語(yǔ)言怎么寫個(gè) 字符串插入函數(shù)

程序的大體思路可以是這樣:

str1是原字符串,str2是待插入的字符串,position是待插入的位置,我們可以這樣,用一個(gè)指針p_cur指向字符串1 str1中的待插入位置position,另一個(gè)指針p_end指向字符串1 str1的尾部,每次插入字符前,把str1中從當(dāng)前位置開始一直到結(jié)束字符全部后移一個(gè)位置,空出當(dāng)前位置,然后把要插入的字符放進(jìn)這個(gè)位置,這樣就完成了一個(gè)字符的插入,重復(fù)這個(gè)步驟,直到str2被完全插入。

代碼如下:

#include stdio.h

#include string.h

void insert_str(char str1[],char str2[],int position)

{

/*

insert_str()函數(shù)

功能:將字符串str2插入到str1的position位置處

參數(shù):char str1,char str2 ,int position

返回值:無(wú)

*/

int i;

char *p_end,*p_cur,*p;/*p_end指向第一個(gè)字符串的尾部,p_cur指向被插入的位置*/

p_end=str1+strlen(str1)-1;

p_cur=str1+position-1;

for(i=0;str2[i]!='\0';i++)

{

for(p=p_end;p=p_cur;p--)

{

*(p+1)=*p;/*從p_cur到p_end的全部元素后移一個(gè)位置,此時(shí)p_cur指向的位置就空出來(lái)了*/

}

*p_cur=str2[i];/*把字符串2中的字符插入空出來(lái)的位置*/

p_cur++;/*p_cur下移一個(gè)位置*/

p_end++;/*多了一個(gè)字符,因此p_end也下移一個(gè)位置*/

}

}

void main()

{

char s1[100],s2[20];

int position;

printf("輸入字符串1:\n");

gets(s1);

printf("輸入插入位置:");

do

{

scanf("%d",position);

while(getchar()!='\n');/*這一句可以把輸入position的時(shí)候輸入的回車去掉*/

}while(position0||positionstrlen(s1));

printf("輸入字符串2:\n");

gets(s2);

insert_str(s1,s2,position);

printf("字符串被插入后變成:\n");

puts(s1);

}

當(dāng)前標(biāo)題:c語(yǔ)言怎樣構(gòu)造字符函數(shù),c語(yǔ)言中構(gòu)造函數(shù)
URL標(biāo)題:http://chinadenli.net/article9/dsspcih.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)自適應(yīng)網(wǎng)站標(biāo)簽優(yōu)化App開發(fā)定制開發(fā)網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管