SString2.h
#define MaxStrSize 20
typedef struct
{
char str[MaxStrSize];
int length;
}SString;
SString s,t;
void SStringInitiate(SString *S,int len,char *str)
{
for(int i=0;i
{
S->str[i]=str[i];
}
}
int SStringInsert(SString *S,int pos,SString T)
{
int i;
if(pos<0||pos>S->length)
{
printf("参数pos出错!\n");
}
else if(S->length+T.length>MaxStrSize)
{
printf("数组空间不足无法插入!");
return 0;
}
else
{
for(i=S->length-1;i>pos;i--)
S->str[i+T.length]=S->str[i];
for(i=0;i
S->str[pos+i]=T.str[i];
S->length=S->length+T.length;
}
}
int SStringDelete(SString *S,int pos, int len)
{
int i;
if(pos<0||pos>=S->length||len<=0||pos+len>S->length)
{
printf("数组中为存放字符无元素可删除!\n");
return 0;
}
else if(S->length<=0)
{
printf("参数pos和len不合法");
return 0;
}
else
{
for(i=pos+len;i<=S->length-1;i++)
{
S->str[i-len]=S->str[i];
S->length=S->length-len;
return 1;
}
}
}
int SStringSubString(SString *S, int pos,int len,SString *T)
{
int i;
if(pos<0||len<0||pos+len>S->length)
{
printf("参数pos和len出错!");
return 0;
}
else
{
for(i=0;i
{
T->str[i]=S->str[pos+i];
}
T->length=len;
return 1;
}
}
#include.h>
#include.h>
#include"SString2.h"
void show()
{
cleardevice();
for(int i=0;i40+20*i,100,30);
xyprintf(40+20*i,100,"%c",s.str[i]);
}
for(int i=0;i40+20*i,200,30);
xyprintf(40+20*i,200,"%c",t.str[i]);
}
}
int main()
{
initgraph(800,600);
setcolor(BLUE);
setbkcolor(WHITE);
setrendermode(RENDER_MANUAL);
setbkmode(TRANSPARENT);
SStringInitiate(&s,4,(char *)"Data");
show();
getch();
SStringInitiate(&t,1,(char *)"wangwei");
show();
getch();
SStringInitiate(&t,0,(char *)"2116483001");
show();
getch();
return 0;
}