几个字符串函数的实现

来源:互联网 发布:qt tcp编程 编辑:程序博客网 时间:2024/04/30 14:51

本来想用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;}。
原创粉丝点击