Exemple #1
0
        //串比较
        public int Compare(StringDS s)
        {
            int len = (this.GetLength() <= s.GetLength()) ? this.GetLength() : s.GetLength();
            int i   = 0;

            for (int j = 0; j < len; j++)
            {
                if (this[j] != s[j])
                {
                    i = j;
                    break;
                }
            }
            if (i < len)
            {
                if (this[i] < s[i])
                {
                    return(-1);
                }
                else if (this[i] > s[i])
                {
                    return(1);
                }
            }
            else if (this.GetLength() == s.GetLength())
            {
                return(0);
            }
            else if (this.GetLength() < s.GetLength())
            {
                return(-1);
            }
            return(1);
        }
Exemple #2
0
        //串定位
        public int Index(StringDS s)
        {
            if (this.GetLength() < s.GetLength())
            {
                Console.WriteLine("There is not string s!");
                return(-1);
            }

            int i   = 0;
            int len = this.GetLength() - s.GetLength();

            while (i < len)
            {
                if (this.Compare(s) == 0)
                {
                    break;
                }
            }
            if (i <= len)
            {
                return(i);
            }
            if (i <= len)
            {
                return(i);
            }
            return(-1);
        }
Exemple #3
0
        //串连接
        public StringDS Concat(StringDS s)
        {
            StringDS s1 = new StringDS(this.GetLength() + s.GetLength());

            for (int i = 0; i < this.GetLength(); i++)
            {
                s1.data[i] = this[i];
            }
            for (int j = 0; j < s.GetLength(); j++)
            {
                s1.data[this.GetLength() + j] = s.data[j];
            }
            return(s1);
        }
Exemple #4
0
        //串插入
        public StringDS Insert(int index, StringDS s)
        {
            int      len  = s.GetLength();
            int      len2 = len + this.GetLength();
            StringDS s1   = new StringDS(len2);

            if (index < 0 || index > this.GetLength() - 1)
            {
                Console.WriteLine("Position is error");
                return(null);
            }

            for (int i = 0; i < index; ++i)
            {
                s1.data[i] = this[i];
            }
            for (int i = index; i < index + len; ++i)
            {
                s1.data[i] = s[i - index];
            }
            for (int i = index + len; i < len2; ++i)
            {
                s1.data[i] = this[i - len];
            }
            return(s1);
        }