码迷,mamicode.com
首页 > 其他好文 > 详细

串比较&&串连接

时间:2020-06-25 15:35:28      阅读:57      评论:0      收藏:0      [点我收藏+]

标签:sci   位置   字典顺序   span   pos   ++   font   pre   free   

1.串比较

比较的是ASCII值和串的长度

可以导出字典顺序

int strCompare(StrNonfix s1,StrNonfix s2){
    for(int i=0;i<s1.length&&i<s2.length;i++){
        if(s1.ch[i]!=s2.ch[i]){
            return s1.ch[i]-s2.ch[i];
        }
    }
    return s1.length-s2.length;
}

2.串连接

int concat(StrNonfix &str,StrNonfix str1,StrNonfix str2){
    if(str.ch){
        free(str.ch);
        str.ch=NULL;
    }
    str.ch=(char*)malloc(sizeof(char)*(str1.length+str2.length+1));
    if(!str.ch){
        return 0;
    }
    int i=0;
    //(0~~str1.length-1) i到str1.length的位置 
    while(i<str1.length){
        str.ch[i]=str1.ch[i];
        i++;
    } 
    int j=0;
    //(str1.length~~str2.length,最后那个位置存‘\0‘ 
    while(j<=str2.length){
        str.ch[i+j]=str2.ch[j];
        ++j;
    }
    str.length=str1.length+str2.length;
    return 1;
}

3.求子串

int subString(StrNonfix& substr,StrNonfix str,int pos,int len){
    if(pos<0 ||pos>=str.length||len<0||len>str.length-pos){
        return 0;
    }
    if(substr.ch){
        free(substr.ch);
        substr.ch=NULL;
    }
    if(len == 0){
        substr.ch=NULL;
        substr.length=0;
         return 1;
    }else{
        substr.ch=(char*)malloc(sizeof(char)*(len+1));
        int i=pos;
        int j=0;
        while(i<pos+len){
            substr.ch[j]=str.ch[i];
            ++i;
            ++j;
        }
        substr.ch[j]=\0;
        substr.length=len;
        return 1;
    }
}

 

串比较&&串连接

标签:sci   位置   字典顺序   span   pos   ++   font   pre   free   

原文地址:https://www.cnblogs.com/jcahsy/p/13191773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!