串比较&&串连接

Posted jcahsy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了串比较&&串连接相关的知识,希望对你有一定的参考价值。

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,最后那个位置存‘‘ 
    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]=;
        substr.length=len;
        return 1;
    }
}

 

以上是关于串比较&&串连接的主要内容,如果未能解决你的问题,请参考以下文章

华为OD机试真题Java实现最长连续子串真题+解题思路+代码(2022&2023)

获取header中的token串&&http的patch方式发送请求

华为OD机试真题Java实现寻找相同子串真题+解题思路+代码(2022&2023)

F - Best Concatenation(贪心&排序)

F - Best Concatenation(贪心&排序)

验证回文串(C++)