• 数据结构学习(六)、串的基本操作


    #define ERROR 0
    #define OK 1
    #define FALSE 0
    #define TRUE 1
    #define MAXSIZE 20
    
    typedef int Status;
    typedef char String[MAXSIZE+1];

    串的生成

    /*
        生成一个其值等于chars的串T
    */
    Status StrAssign(String T,char * chars)
    {
        int i;
        if(strlen(chars)>MAXSIZE)
            return ERROR;
        else{
            T[0] = strlen(chars);
            for(i=1;i<=T[0];i++)
                T[i] = *(chars+i-1);
            return OK;
        }
    }

    串的比较

    /*
        串的比较 S>T返回的值大于零 S=T返回零 S<T返回的值小于零
    */
    int StrCompare(String S,String T)
    {
        int i;
        for(i=1;i<=T[i]&&i<S[i];i++){
            if(T[i]!=S[i])
                return S[i]-T[i];
        }
        return S[0]-T[0];
    }

    串的拼接

    /*
        串的拼接, 当MAXSIZE大于等于二拼接串长度时候,返回true否则返回false
    */
    Status Contact(String S,String T,String Q)
    {
        int i;
        if(S[0]+T[0]<=MAXSIZE){
            Q[0] = S[0]+T[0];
            for(i=1;i<=S[0];i++)
                Q[i] = S[i];
            for(i=1;i<=T[0];i++)
                Q[i+S[0]] = T[i];
            return TRUE;
        }else{
            Q[0] = MAXSIZE;
            for(i=1;i<=S[0];i++)
                Q[i] = S[i];
            for(i=1;i<=MAXSIZE-S[0];i++)
                Q[i+S[0]] = T[i];
            return FALSE;
        }
    }

    串的截取

    /*
        串的截取,从pos位置开始,长度为len
    */
    Status SubString(String S,String Sub,int pos,int len)
    {
        int i;
        if(pos<1 || len <0 || pos>S[0] || len>S[0]-pos+1)
            return ERROR;
        for(i=1;i<=len;i++)
            Sub[i]=S[pos+i-1];
        Sub[0] = len;
        return OK;
    }
  • 相关阅读:
    实验二 K-近邻算法及应用
    实验1 感知器及其应用
    实验三 面向对象分析与设计
    结构化分析与设计
    实验一 软件开发文档与工具的安装与使用
    ATM管理系统
    流程图与活动图的区别与联系
    四则运算
    实验四 决策树算法及应用
    实验三 朴素贝叶斯算法及应用
  • 原文地址:https://www.cnblogs.com/huixuexidezhu/p/5909363.html
Copyright © 2020-2023  润新知