您的位置:首页 > 编程语言 > C语言/C++

几个字符串函数的实现

2017-12-21 11:46 351 查看
本来想用c语言嵌入汇编来实现几个常用字符串处理函数的,但是没调出来:)。

int len(const char *s)
{
int length=0;
while(*s++!=NULL) length++;//一直往下走,直到预见"NULL",字符串结束标志
return length;
}
int cmp(const char *s,const char *d)
{
const char *s1,*d1;
s1=s,d1=d;
while((*s1==*d1)&&(*s1&&*d1))//当前比较的字符都非空,且相等,往下走;不满足这两个条件就跳出while.
{
s1++;
d1++;
}
if((*s1==NULL)&&(*d1==NULL)) printf("%s equels to %s\n",s,d);
if(*s1&&*d1)
{
if(*s1>*d1)
{
printf("%s is bigger than %s\n",s,d);
return 1;
}
else
{
printf("%s is bigger than %s\n",d,s);
return -1;
}
}
else
{
if(*d1)
{
printf("%s is bigger than %s\n",d,s);
return -1;
}
if(*s1)
{
printf("%s is bigger than %s\n",s,d);
return 1;
}
}
return 0;
}
char * cat(char *s,const char *d)
{
int length=0;
char *cat,*cat1;
length=len(s)+len(d);//计算合并后字符串的长度
cat=(char *)malloc(length),cat1=cat;
while(*cat++=*s++);//拷贝
cat--;//be careful
while(*cat++=*d++);
printf("the combined string:%s\n",cat1);
return cat1;
}
int main(int argc,char *argv)
{
int length=0;
char * s="12345",*d="67890abc",*s1="12347";
cmp(s,d);
cmp(s,s1);
cat(s,d);
printf("s:%s,length:%d\n",d,len(d));
return 0;
}。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言