美文网首页
自定义字符串拷贝、连接、比较及设置长度操作

自定义字符串拷贝、连接、比较及设置长度操作

作者: SuperDing | 来源:发表于2016-09-19 08:41 被阅读0次

    include<stdio.h>

    int myStrlen(char Str)//字符长度
    {
    int count=0;
    while(
    Str!='\0')
    {
    count++;
    Str++;
    }
    return count;
    }

    void myStrcpy(char *Str1,char Str2)//字符拷贝
    {
    while(
    Str2!='\0')
    {
    Str1=Str2;
    Str1++;
    Str2++;
    }
    *Str1='\0';
    }
    void myStrcat(char Str1,const char Str2)//字符串连接
    {
    while(
    Str1!='\0')
    {
    Str1++;
    }
    while(
    Str2!='\0')
    {
    Str1=Str2;
    Str1++;
    Str2++;
    }
    *Str1='\0';
    }

    int myStrcmp(char str1,char str2)//字符串比较
    {
    while(
    str1!='\0'&&
    str2!='\0')
    {
    if(str1-str2==0){
    str1++;
    str2++;
    }else{
    return str1-str2;
    }
    }

    if(str1=='\0')
    {
    return 0-
    str2;
    }

    if(*str2=='\0')
    {
    return *str1-0;
    }
    }

    void myStrncpy(char *str1,char str2,int size)
    {
    int i=0;
    while(
    str2!='\0'&&i<size)
    {
    str1=str2;
    i++;
    str1++;
    str2++;
    }
    *str1='\0';
    }

    void myStrncat(char *str1,char str2,int size)
    {
    int i=0;
    while(
    str1!='\0')
    {
    str1++;
    }

    while(*str2!='\0'&&i<size)
    {
        *str1=*str2;
        i++;
        str1++;
        str2++;
    }
    *str1='\0';
    

    }

    int myStrncmp(char str1,char str2,int size)//字符串比较
    {
    int count=0;
    while(
    str1!='\0'&&
    str2!='\0'&& count<size)
    {
    if(str1-str2==0&&count<size-1){
    str1++;
    str2++;
    count++;
    }else if(str1-str2==0&&count==size-1){
    return 0;
    }else if(str1!=str2&&count<size)
    {
    return str1-str2;
    }
    }

    if(str1=='\0'&&count<size)
    {
    return 0-
    str2;
    }

    if(*str2=='\0'&&count<size)
    {
    return *str1-0;
    }
    }

    int main()
    {
    /*
    char str1[10]="sdfghjr";
    int length1=myStrlen(str1);
    printf("%d\n",length1);

    char str1[10]="sdfghjr";
    char str2[30];
    myStrcpy(str2,str1);
    printf("%s\n",str2);

    char str1[30]="qwert";
    char str2[10]="zxcvb";
    myStrcat(str1,str2);
    printf("%s\n",str1);

    char str1[10]="abc";
    char str2[10]="abcabc";
    int result=myStrcmp(str1,str2);
    printf("%d\n",result);

    char str2[20]="hello world";
    char str1[30];
    myStrncpy(str1,str2,5);
    printf("%s\n",str1);

    char str1[40]="world";
    char str2[20]="nihao world";
    myStrncat(str1,str2,6);
    printf("%s\n",str1);
    */
    char str1[20]="abcabcd";
    char str2[20]="abcabcanc";
    int result1=myStrncmp(str1,str2,8);
    printf("%d\n",result1);

    return 0;
    

    }

    相关文章

      网友评论

          本文标题:自定义字符串拷贝、连接、比较及设置长度操作

          本文链接:https://www.haomeiwen.com/subject/bgggettx.html