字符串的实现加法,字符串的实现加减乘除
永远的神干货盘点
一、串的相关定义串:由零个或者多个字符组成的有限序列。记为S="a1a2a3.一个”(n大于等于0),其中S为串名,a1a2a3.一;一个为串值,n为串的长度。
空串:不包含任何字符的串称为空串。例如:S=" "(双引号中没有任何东西)
空格串:由一个或者多个空格组成的串称为空格串,注意空格串不等于空串,空格串的长度等于空格字符的个数。
子串:串中任意连续的字符组成的子序列称为该串的子串。
串相等:两个串相等,是指两个串的长度相等且对应的字符都相等。
二、串的相关操作1.串的赋值
2.求串长
3.串的复制
4.串的打印
5.比较两个串
6.求子串
7.删除字串
8.插入串
三、代码实现#include str_s.h
int StrAssign(HString T,char *chars)//生成一个其值等于串常量烧焦的T
{
int i,n;char * c;
for(i=0,c=chars * cI,c);
如果(!我)
{
T.ch=NULL
t。长度=0;
}
其他
{
如果(!(t . ch=(char *)malloc(I * sizeof(char))))
return-1;
for(n=0;n=I-1;n)
{
t。ch[n]=chars[n];
t。长度=I;
}
}
返回1;
}
int SubString(HString Sub,HString S,int pos,int len)//求子串
{
int n;
如果(位置0 位置长度 长度0 长度-位置1)
{
返回0;
}
如果(!len)
{
Sub.ch=NULL
子长度=0;
}
其他
{
ch=(char *)malloc(len * sizeof(char));
for(int n=0;n=len-1;n)
{
子通道[n]=子通道[位置n-1];
}
Sub.length=len
}
返回1;
}
int StrCompare(HString S,HString T)//若科学技术,则返回值若S=T,则返回值0;若科学技术,则返回值0
{
for(int I=0;I . s .长度I . t .长度;我)
{
if(s ch[I]!=T.ch[i])
return s . ch[I]-t . ch[I];
其他
返回s .长度-t .长度;
}
}
int Index(HString S,HString T,int pos)
{
int i=pos,j=0;
而(即长度j . t。长度)
{
if(S.ch[i]==T.ch[j])
{
我;j;
}
其他
{
I=I-j 1;
j=0;
}
}
if(j=T.length)返回长度;
否则返回0;
}
int StrLength(HString T)//求串长
{
返回t .长度
}
空字符串
{
int I;
for(I=0;我。长度;我)
{
printf(%c ,t . ch[I]);
}
} #包含标准视频
#包含马洛克
#包含字符串。h
#定义块大小80
数据类型说明结构
{
char * ch
(同Internationalorganizations)国际组织长度;
} HString
int StrAssign(HString T,char * chars);
int SubString(HString Sub,HString S,int pos,int len);//求子串
int StrCompare(HString S,HString T);
int Index(HString S,HString T,int pos);
int StrLength(HString T);
无效字符串打印(HString T);#include str_s.h
无效显示()
{
printf(请输入想选择的指令:\ n’);
printf(1 .显示串\ n’);
printf(2 .显示串长\ n’);
printf(3 .两串做比较\ n’);
printf(4 .求子串\ n’);
printf(5 .定位\ n’);
printf(0 .退出\ n’);
printf(-\ n );
}
int main()
{
int n;
show();
scanf(%d ,n);
char s[15]= qwertasdfzxc ;
HString S;
StrAssign(S,S);
char t[5]= asdf ;
HString T;
StrAssign(T,T);
HString短节;
而(n!=0)
{
开关(名词)
{
案例1:
printf(第一个串为:%s\n ,s . ch);
printf(第二个串为:%s\n ,t . ch);打破;
案例2: printf(第一条串长:%d\n ,StrLength).
printf(第二条串长:%d\n ,StrLength(T));打破;
案例三:int n;
n=StrCompare(S,T);
如果(n!=0)
如果(北^ 0)
printf(前面长\ n’);
其他
printf(后面长\ n’);
其他
printf(一样长\ n’);打破;
案例4: printf(请输入你想取的位置及长度:\ t );
int j,l;
scanf(%d %d ,j,l);
SubString(Sub,S,j,l);
字符串打印(Sub);打破;
案例五:int k;
printf(输入查询的位置:\ n’);
scanf(%d ,k);
int x=Index(S,T,k);
printf(定位到的位置为:%d ,x);打破;
}
printf( \ n );
show();
scanf(%d ,n);
}
返回0;
}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。