串的简单操作
#include <stdio.h>#include <stdlib.h>
#include <string.h>
#define MAXSIZE 100
void input(char t[])
{int i=0,j=0;
printf("请输入字符串中的字符:");
while((t[++j]=getchar())!=10)
i++;
t[0]=i;
}
int strAssign(char t[],char *chars)
{int i;
if(strlen(chars)>MAXSIZE)
return 0;
else
{
t[0]=strlen(chars);
for(i=1;i<=t[0];i++)
t[i]=*(chars+i-1);
}
return 1;
}
int concat(char t[],char s1[],char s2[])//用t返回s1和s2连接而成的新串
{int i;
if(s1[0]+s2[0]<=MAXSIZE)
{
for(i=1;i<=s1[0];i++)
t[1]=s1[i];
for(i=1;i<=s2[0];i++)
t[s1[0]+i]=s2[i];
t[0]=s1[0]+s2[0];
return 1;
}
else
{
for(i=1;i<=s1[0];i++)
t[i]=s1[i];
for(i=1;i<=MAXSIZE-s1[0];i++)
t[s1[0]+i]=s2[i];
t[0]=MAXSIZE;
return 0;
}
}
main()
{char a[MAXSIZE],b[MAXSIZE],t1[MAXSIZE],t2[MAXSIZE];
int i;
input(a);
input(b);
strAssign(t1,a);
printf("生成一个其值等于a的串t1:\n");
printf("输出串t1:\n");
printf("%s",t1);
printf("a和b连接生成新串t2:\n");
concat(t2,a,b);
printf("输出串t2:\n");
printf("%s",t2);
}