日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

串的基本计算

發(fā)布時(shí)間:2023/12/1 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 串的基本计算 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

#include<stdio.h>

#include<stdlib.h>

//typedef int Status;

#define Max 20

#define OK 1

#define ERROR 0

#define OVERLOE -2

typedef struct//堆分配表示串

{

?char *ch;

?int length;

}HString;

//===================================================================

int CreatHString(HString &H)//構(gòu)造字符串

{

?H.length = 0;

?H.ch = (char *)malloc(Max*sizeof(char));

?for (int i = 0; i < Max; i++)

?{

? H.ch[i]=getchar();

? H.length++;

? if (getchar() == '\n')

?? break;

?}

?return OK;

}//CreatHString

//===================================================================

int PrintHString(HString H)//輸出所輸入的字符串

{

?if (H.length == 0)

?{

? printf( "空串!" );

? return ERROR;

?}

?else

? for (int i = 0; i < H.length; i++)

?? printf("%c",H.ch[i]);

? printf("\n");

?return OK;

}//PrintHString

//===================================================================

int HStringLength(HString H)//求字符串的長(zhǎng)度

{

?printf( "您輸入的字符串長(zhǎng)度為:" );

?printf("??? %d ",H.length);

?return OK;

}//HStringLength

//===================================================================

int HStringCompare(HString H, HString T)//求兩個(gè)字符串長(zhǎng)度差(絕對(duì)值)

{

printf( "兩個(gè)字符串的長(zhǎng)度差為:" );

?int L;

? L = H.length - T.length;

?if (L<0)

?printf("%d",-L);

?if (L>=0)

?printf("%d",L);

?return OK;

}//HStringCompare

//===================================================================

int ConcatHString(HString &S, HString H, HString T)//鏈接H和T

{

?if (!(S.ch = (char *)malloc((H.length + T.length)*sizeof(char))))

? exit(OVERLOE);

?for (int i = 0; i < H.length; i++)

? S.ch[i] = H.ch[i];

?S.length = H.length + T.length;

?for (int j = H.length; j < S.length; j++)

? S.ch[j] = T.ch[j-H.length];

?return OK;

}//ConcatHString

//===================================================================

int SubHString(HString &Sub, HString S, int pos,int len)

{//用Sub返回串S的第pos個(gè)字符起長(zhǎng)度為len的子串

?if (pos<1 || pos>S.length)

?{

? printf( "輸入的位置有誤!" );

? return ERROR;

?}

?if (len<0 || len>S.length - pos + 1)

?{

? printf( "輸入的長(zhǎng)度有誤!" );

? return ERROR;

?}

?if (!len)

?{

? Sub.ch = NULL;

? Sub.length = 0;

?}

?else

?{

? Sub.ch = (char *)malloc(len*sizeof(char));

? for (int i = 0; i < len ; i++)

?? Sub.ch[i] = S.ch[pos + i - 1];

? Sub.length = len;

?}

?return OK;

}//SubHString

//===================================================================

int ClearHString(HString &H)//將H清為空串

{

?if (H.ch)

?{

? free(H.ch);

? H.ch = NULL;

?}

?H.length = 0;

?return OK;

}//ClearHString

//===================================================================

void main()

{

?HString S,H,T;

?printf( "請(qǐng)輸入一個(gè)字符串(按回車鍵結(jié)束):" );

?CreatHString(H);

?printf("現(xiàn)在串中的字符為:" );

?PrintHString(H);

?HStringLength(H);

?printf( "請(qǐng)?jiān)佥斎胍粋€(gè)字符串(按回車鍵結(jié)束):" );

?CreatHString(T);

?HStringCompare(H, T);

?ConcatHString(S, H, T);

?printf("現(xiàn)在串中的字符為:" );

?PrintHString(S);

?HString Sub;

?int pos, len;

?printf( "請(qǐng)輸入截取位置pos及長(zhǎng)度len:" );

?scanf( "%d%d",&pos,&len);

?SubHString(Sub, S, pos, len);

?printf( "截取的子串為:" );

?PrintHString(Sub);

?ClearHString(S);

?printf ("檢驗(yàn)S清空后是否為空:" );

?PrintHString(S);

}//main

?

轉(zhuǎn)載于:https://www.cnblogs.com/youdiaodaxue16/p/7857766.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的串的基本计算的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。