• c1c2c5 > 第5章 字符串
  • 第5章 字符串

    免费下载 下载该文档 文档格式:DOC   更新时间:2011-03-14   下载次数:0   点击次数:1
    第5章 字符串
    串(string)是一种简单的数据结构,它的数据对象是字符集合.一系列相连的字符就组成了一个字符串.字符串简称为串.在非数值处理问题中,许多主要操作对象都是串.如在信息管理系统中,职员的姓名,住址,籍贯等都是串,对编译程序而言源程序中的每条语句也都是一个串.
    在较早的程序设计语言中,串都是作为输入和输出的常量出现的,因此只需作为一个字符序列存储.随着语言加工程序的发展,产生了串处理,这时串也就作为一种变量类型出现在许多程序设计语言中.虽然目前有些程序设计语言已支持串类型,并提供一些串操作的函数,但为更好地实现串处理,本章将重点介绍串的存储和一些基本运算的实现.
    5.1串和串的主要运算
    5.1.1 串的基本概念
    串是零个或多个字符组成的有限序列.一般记为:
    S="c1c2c3…cn"
    其中,s是串名;串中任意的ci (1≤i≤n)是单个字符,它可以是字母、数字或其他字符.用双引号括起来的字符序列称为串值,但双引号并不属于串值,它的作用只是用来标识一个串的起始和终止.n为串的长度,即串中所包含的字符的个数.若n=0,则称s为空串(null string),空串是不含有任何字符的串.通常,用两个相邻的双引号来表示空串.例如,在程序设计语言中
    x ="book";
    表明x是一个串变量名,而字符序列book是它的值,该串的长度为4.而y="";
    表明y是一个空串,它不含有任何字符.
    仅含有空格字符的串称为空格(blank string)串(注意不是空串).它的长度为串中空格符的个数.为了清楚起见,书写时用符号"Ф"表示空格符.例如
    t = "ФФ";
    表明t是一个空格串,它的长度为2.由于空格符也是一个字符,因此,它可以出现在其他字符之间,计算串长时应包括这些空格符.如串"bookФandФpen"的长度为12,而不是10.
    将一个串中若干个相连字符组成的子序列称为该串的子串.包含子串的串相应地称为主串.比如,串"ABC"是"ABCD"的子串,反之串"ABCD"是"ABC"的主串,但串"ACB"、"ABE"和"ABD"都不是"ABCD"的子串.特别地,空串是任意串的子串,任意串是其自身的子串.
    请注意,在C语言中单引号和双引号表示两各不同的概念.单引号表示单个字符,双引号则表示字符串.例如在C语言中'a'表示单个字符a,而"a"表示字符串"a\0";而在本书中"a"为只含有一个字符的串,使用时务必不要混淆.
    5.1.2 串的主要运算
    1)strassign (&a, b)
    串的赋值运算.其中,a为串变量名,b可以是串变量名,也可以是一个字符序列.若b是串变量则把b的值赋给a,若b是一个字符序列,则赋值运算实质上为设定一个串,即将该字符序列赋给予串变量a.
    例如,假设有s1="student",则执行
    strassign (&a, s1)或strassign (&a,"student" )后,均有a="student".
    2)strconcat(&c, a, b)
    串的联接运算又叫并置.执行该运算的结果是将串b的值紧接着放在串a的值的末尾,而组成一个新串c.例如,给定如下3个串:
    a ="ABC",b ="XYZ",c="1234"
    则执行strconcat(s, a, b) 后有 s = "ABCXYZ"
    执行strconcat(s, b, a) 后有 s = "YZABC"
    而执行strconcat(s, strconcat(s1, a, c),b)
    =strconcat(s, a, strconcat(s1, c, b)) 后均有 s ="ABC1234XYZ"(.
    显然,串的联接运算不满足交换律,但满足结合律.
    可以把两个串的联接运算推广到n个串的联接运算 , :
    strconcat(&s,s1,s2,…,sn)
    其运算结果是将这n个串的值依次首尾相接而得到一个新串s.
    3) strlen(s)
    求串长函数.它的作用是求出串s中的字符个数.
    设串s1= "3.1415",s2 = " ",s3 = "aФhand",则有
    strlen(s1)=6
    strlen(s2)=0
    strlen(s3)=6
    4)strsub(s, m, n, &sub)
    求子串的运算是指求串s中从第m个字符开始到第n个字符截止的连续字符子序列,并将这个子序列赋个变量sub.显然,有1 ≤ m ≤ n≤ 串长.

    下一页

  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 DOC格式下载
  • 您可能感兴趣的
  • c1c2c3  c1c2c3模拟考试试题  5dc1c2c3  小型c1c2c3  生化危机5  cctv5在线直播  cctv5  苹果5  仙剑奇侠传5