Chinaunix首页 | 论坛 | 博客
  • 博客访问: 84491
  • 博文数量: 18
  • 博客积分: 735
  • 博客等级: 军士长
  • 技术积分: 205
  • 用 户 组: 普通用户
  • 注册时间: 2005-09-04 14:10
文章分类

全部博文(18)

文章存档

2008年(2)

2007年(12)

2005年(4)

我的朋友

分类: Oracle

2005-09-14 17:56:05

水水水水水水水水水水水水水水

要离职了,这个是在现在公司,无聊的时候,随便写的,不好带走,放在这里吧.没其他意思只是不舍得丢掉而已.错误肯定是有很多的,但是怎么样也是我亲手写的.还有很多函数没有写完.看以后有没有时间了.

/***************************************************
2005-09-03 21:45.函数中传入参数 pSrc,char *tmp=pSrc;
  然后函数中处理时,都是pSrc操作,返回tmp.
  但是网上的都是对tmp操作,返回pSrc.
 
2005-09-11 17:26.函数对传入参数不做任何检查,要求调用者
  控制好传入参数的合法性.
***************************************************/
#include
#include
#include
#include
/***************************************************
name:       MyStrCat(char* s1,char* s2)
function:  字符串连接函数。将s2追加到s1尾部
date:       2005-09-03
author:     shenxl
****************************************************/
char * MyStrCat(char *s1,char *s2){
    char *tmp=s1;
    while(*tmp)/*找到tmp尾,即*tmp='',被s2的第一个字符覆盖*/
        tmp++;
    while((*tmp++ = *s2++) != '')
        ;
    return s1;
}
/***************************************************
name:       MyStrnCat(char* s1,char* s2,nusigned count)
function:  字符串连接函数。将s2中count个字符追加到s1尾部
date:       2005-09-11
author:     shenxl
****************************************************/
char* MyStrnCat(char *dest,char *src,unsigned count){
    char *tmp=dest;
    while(*tmp)/*找到tmp尾,即*tmp='',被s2的第一个字符覆盖*/
        tmp++;
    while((*tmp++ = *src++) && --count)
        ;
    if(count>=0)
        *tmp='';
    return dest;       
   
}
/****************************************************
name:       MyStrCpy(char* dest,char* src)
function:   字符串拷贝函数。= strcpy()
date:       2005-09-03
author:     shenxl
****************************************************/
char * MyStrCpy(char *dest,char *src){
    char *tmp = dest;
    while(*tmp++ = *src++)
        ;
        /*这里是否要对tmp进行最后加一个''??*/
        /*不需要,''已经复制过去了,才让while循环结束*/
    return dest;
}
/*******************************************************
name:       MyStrnCpy(char* dest,char* src,int count)
function:   字符串拷贝函数。= strncpy(),
            如果 count<=strlen(src)THEN  src末尾的NULL字符将不被复制
            如果 count >strlen(src)THEN  src将把NULL字符复制过去.
date:       2005-09-03
author:     shenxl
****************************************************/
char * MyStrnCpy(char *dest,char *src,int count){
    char *tmp = dest;
    for(; (count--) &&(*tmp++ = *src++) ; ){
        ;/*count--不成立,&&后面的赋值不做*/
    }
    if(count>=0){
        *tmp='';
    }
    return dest;
}
/****************************************************
name:       MyStrRpe(char *src,char* p1,char* p2)
function:  字符串替换函数。将p1替换成p2
           若源字符串中没有p1,则返回源字符串。  
date:       2005-09-03
author:     shenxl
****************************************************/
char *MyStrRep(char *src,char *p1,char *p2){
    char *pTmp = src;
    char *iPosition;
    int ip1len,ip2len;
    ip1len = strlen(p1);
    ip2len = strlen(p2);
   
    for(;src!='';){
        iPosition = strstr(src , p1);        /*匹配被替换的字符串*/ 
        if(iPosition!=NULL){        
                src = iPosition + ip2len;      /*跳过P2长度个字符*/
                memmove(src,iPosition+ip1len,strlen(iPosition+ip1len));
                memcpy(iPosition,p2,strlen(p2)); /*替换*/
        }else{
                return pTmp;    
        }                  
    }
    return pTmp;   
}
/****************************************************
name:       MyStrCmp(char *p1,char* p2)
function:  比较字符串,
date:       2005-09-11
author:     shenxl
****************************************************/
int MyStrCmp(char *p1,char *p2){
    char *pStr1=p1;
    char *pStr2=p2;
    int  rtnVal;
    for(; (*pStr1++)&&(*pStr2++) ; ){
        if( (rtnVal=*pStr1 - *pStr2) !=0){
                return rtnVal;  
        }
    }
    return 0;        
}
/****************************************************
name:       MyStrnCmp(char *p1,char* p2,int count)
function:   比较字符串,比较前count个字符
date:       2005-09-11
author:     shenxl
****************************************************/
int MyStrnCmp(char *p1, char *p2, int count){
    char *pStr1=p1;
    char *pStr2=p2;
    int  rtnVal;
    for(; (count--)&&(*pStr1++)&&(*pStr2++); ){
        if( (rtnVal=*pStr1 - *pStr2) !=0){
                return rtnVal;  
        }
    }
    if(count >=0)
        return 0;   
    return 0;        
}
/****************************************************
name:       MyStrSet(char *p1,int c)
function:   设置字符串中字符为 c
date:       2005-09-11
author:     shenxl
return:     char *
****************************************************/
char *MyStrSet(char *p1,int c){
    char *pTmp=p1;
    for(;*p1;)   
        *p1++=c;
    return pTmp;
}
/****************************************************
name:       MyStrnSet(char *p1,int c,int count)
function:   设置字符串中count 个字符为 c
date:       2005-09-11
author:     shenxl
return:     char *
****************************************************/
char *MyStrnSet(char *p1,int c,int count){
    char *pTmp=p1;
    for(;*p1 && count;){
        *p1++=c;    
        count--;  
    }       
    return pTmp;
}
/****************************************************
name:       MyStrChr(char *p1,int c)
function:   finds the first occurrence of c in string,
            or it returns NULL if c is not found.
            The null-terminating character is included
            in the search. (MSDN)
date:       2005-09-11
author:     shenxl
return:     char *
****************************************************/
char *MyStrChr(char *p1, int c){
    char *pTmp;
    for(;(*p1!=c)&& *p1!='';){
        p1++;   
    }   
    return p1;
}
int main(){
    char pSrc[]="just for test just";
    char p1[]="abcdkkkk";
    char p2[]="efghij";
    char *p3;   
#if 0
    p3=MyStrCat(p1,p2);
    p3=MyStrCpy(p1,p2);
    p3=MyStrRep(pSrc,"us","usus");
    printf("MyStrCmp()=%d ",MyStrCmp("aaabb","aaab"));
    printf("%s",MyStrnCat(p1,p2,3));
    printf("%d",MyStrnCmp("aaa","aaab",3));
    printf("%s",MyStrSet(p1,'a'));
    printf("%s",MyStrnSet(p1,'a',10));
    printf("%s",MyStrChr(p1,'m'));/*m没找到,返回NULL*/
#endif
   
       
    getch();
    return 0;
}

阅读(2029) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~