美文网首页
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