zoukankan      html  css  js  c++  java
  • 数据结构学习(六)、串的基本操作

    #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;
    }
  • 相关阅读:
    自动生成小学四则运算题目
    python自动生成小学四则运算题目
    大学排名
    中国大学排名
    pachong
    paiqiu
    文件管理
    软件工程课作业 2020-11-23
    时序图,E-R图,数据流程图
    考研信息查询系统需求规格说明书
  • 原文地址:https://www.cnblogs.com/huixuexidezhu/p/5909363.html
Copyright © 2011-2022 走看看