美文网首页
2019-08-21(字符串)

2019-08-21(字符串)

作者: 1墨家巨子 | 来源:发表于2019-08-21 18:20 被阅读0次
    /********我的字符串拷贝函数********/
    void my_strcpy(void){
    //strcpy(arr,"Hello");
        char dest_arr[N]="hellor";
        char src_arr[N]="worddddd";
        int dest_len=sizeof(dest_arr);
        int src_len=sizeof(src_arr);
        if(dest_len>=src_len){
            int i;
            for(i=0;i<strlen(src_arr);i++){
                dest_arr[i]=src_arr[i];
            }
            dest_arr[i]=0;
            printf("%s\n",dest_arr);
        }
        else printf("目的字符串范围窄\n");
    }
    
    /***************************************
     * 我的字符串拷贝函数(指针版)
    ****************************************/
    char * my_strcpy(char *dest,char *src){
        if(*dest==NULL||*src==NULL){
            return -1;
        }
        char *p=dest;
        char *q=src;
        if(strlen(dest)>=strlen(src)){
            while(*q){
                *p=*q;
                p++;
                q++;
            }
         return dest;
        }
        else return -2;
    
    }
    
    /********我的字符串比较函数********/
    int my_strcmp(void){
        char dest_arr[N]="hellor";
        char src_arr[N]="word";
        int i;
        int dest_len=strlen(dest_arr);
        int src_len=strlen(src_arr);
       int size=(dest_len>=src_len)?src_len:dest_len;
           for(i=0;i<size;i++){
            if(dest_arr[i]==src_arr[i]){
                continue;
            }
            else if(dest_arr[i]<src_arr[i]){
                return 1;
            }
            else if(dest_arr[i]>src_arr[i]){
                return -1;
            }
            return 0;
        }
    }
    /*****我的字符串连接函数*****/
    void my_strcat(void){
        char dest_arr[N]="hellor";
        char src_arr[N]="word8888";
        int i;
        int dest_len=strlen(dest_arr);
            for(i=0;i<sizeof(dest_arr)-1;i++){
                dest_arr[i+dest_len]=src_arr[i];
            }
            dest_arr[i+dest_len]=0;
          printf("%s\n",dest_arr);
    }
    /******我的字符串连接函数(指针版)******/
    方式1
    int my_strcat(char *dest_arr,char *src_arr){
        if(NULL==dest_arr||src_arr==NULL){
            return -1;
        }
        int i=0;
        int dest_len=strlen(dest_arr);
        int src_len=strlen(src_arr);
        while (i<src_len) {
          *(dest_arr+(i+dest_len))=*(src_arr+i);
           i++;
        }
          printf("%s\n",dest_arr);
          return 0;
    }
    方式2
    int my_strcat(char *dest_arr,char *src_arr){
        if(NULL==dest_arr||src_arr==NULL){
            return -1;
        }
        char *temp_src=dest_arr;//中间变量指针移动
        while ( *temp_src){
            *temp_src++;
        }
        while ( *src_arr) {
            *temp_src++=*src_arr++;
        }
       *temp_src=0;
          printf("%s\n",dest_arr);//目的指针指向不变
          return 0;
    }
    

    相关文章

      网友评论

          本文标题:2019-08-21(字符串)

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