string系列函数实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了string系列函数实现相关的知识,希望对你有一定的参考价值。

;string系列函数
int main(int argc, char* argv[]){
 
    char str1[100]="hello";
    char str2[100]="helloChina";
    char str3[100]="heool";
    //int len=myStrLen((char *)&str1);
    //myStrCpy((char *)&str2,(char *)&str1);
    //myStrCat((char *)str1,(char *)str2);
    //myStrCmp((char *)str1,(char *)str2);
    myStrUpr((char *)str3);
return 0;
}
/*
*return string length
*/
int myStrLen(char *str){
    int len=0;
    while(*str++){
        len++;
    }
    return len;
}
/*
*strcopy 类似右面赋值给左面的赋值语句
*/
char *myStrCpy(char *str1,char *str2){
    char *res;
    res=str1;
    while(*str2){
        *res = *str2;
        str2++;
        res++;
    }
    *res=‘\0‘; 
    //while(*res++ = *str2++);
    return str1;
}
 
/*
*把字符串复制连接到str1后面,返回str1地址
*/
char *myStrCat(char *str1,char *str2){
    char *res;
    res=str1;
    while(*res !=0){
 
        res++;
    }
    while(*str2){
        *res = *str2;
        str2++;
        res++;
    }
    *res=‘\0‘;
    return str1;
}
 
int myStrCmp(char *str1,char *str2){
    while(*str1){
        
        if(*str1!=*str2){
            return (*str1)-(*str2);       
        }
        str1++;
        str2++;
    }
    return  0;
}
/*
*ABC to abc 大写字母的ASCII代码是65-90,小写字母的代码是97-112,所以说应该是C+=32
*/
char *myStrLwr(char *str1){
    char *res=str1;
    while(*str1){
        *str1=*str1+32;
        str1++;
    }
    return res;
}
/*
*abc to ABC
*/
char *myStrUpr(char *str1){
    char *res=str1;
    while(*str1){
        *str1=*str1-32;
        str1++;
    }
    return res;
}
 
;_cinit()

以上是关于string系列函数实现的主要内容,如果未能解决你的问题,请参考以下文章

String类的实现与深浅拷贝问题

Go语言标准库之strconv

go语言标准库之strconv

string类的两种实现方法及string的一些成员函数的实现

C语言源码剖析与实现——strtok()系列函数实现

Go语言标准库之strconv