《串和基本概念.ppt》由会员分享,可在线阅读,更多相关《串和基本概念.ppt(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2007.9 第四章第四章 串串String一、串和基本概念一、串和基本概念 串(String)是零个或多个字符组成的有限序列。一般记作S=“a1a2a3an”空串:长度为零的串,它不包含任何字符。串的基本操作串的基本操作 对于串的基本操作,许多高级语言均提供了相应的运算或标准库函数来实现。下面仅介绍几种在C语言中常用的串运算,其它的串操作见的文件。1.求串长(strlen)2.串复制(strcpy)char*strcpy(char to,char from);该函数将串from复制到串to中,并且返回一个指向串to的开始处的指针。3.联接(strcat)char strcat(char to
2、,char from)该函数将串from复制到串to的末尾,并且返回一个指向串to的开始处的指针。4.串比较(strcmp)int strcmp(chars1,char s2);该函数比较串s1和串s2的大小,当返回值小于0,等于0或大于0时分别表示s1s2 串的存储结构串的存储结构1.顺序串顺序串上的插入和删除操作不方便,需要移动大量的字符。2.链串 可用单链表方式来存储串值 typedef struct node char data;struct node*next;lstring;一个链串由头指针唯一确定。这种结构便于进行插入和删除运算,但存储空间利用率太低。20022002试题二试题二
3、 函数函数2 21 1说明说明 函数strcat(char*si,char*s2)是将字符串s2连接在字符串,s1之后,构成一个首指针为s1的字符串。函数21)void strcat(char*sl,char*s2)while(*s1!=0);(1):for(;(2);s1+,s2+);19991999试题一试题一 函数strcpy(char*to,char*from)将字符串from复制到字符串to.void strcpy(char*to,char*from)while (_(1)_);2001 2001 试题一试题一 函数函数1.11.1说明说明 函数strcmp()是比较两个字符串 s
4、和 t 的大小。若 s t,函数返回正数。int strcmp(char*s,char*t)while(*s&*t&_(1)_)s+;t+;return _(2)_;20032003函数2.1说明函数char*strrchr(char*s,char ch)的功能是在字符串s中寻找字符ch若ch出现在字符串s中,则返回最后一次出现时的位置,否则返回NULL。函数函数2.1char*strrchr(char*s,char ch)char*p;p=_(1)_;/*p指向字符串s的结束标志*/while(-p=s)if(_(2)_)return p;return NULL;2005-12005-1函数
5、2.2说明函数long fun2(char*str)的功能是:自左至右顺序取出非空字符串str中的数字字符形成一个十进制整数(最多8位)。例如,若字符串str的值为“f3g8d5.ji2e3p12fkp”,则函数返回值为3852312。函数函数2.2long fun2(char*str)int i=0;long k=0;char*p=str;while(*p!=/0&_(3)_)if(*p?=0&*p?=9)k=_(4)_+*p-0;+i;_(5)_;Return k;2004-12004-1函数2.1说明函数palindrome(chars)的功能是:判断字符串s是否为回文字符串,若是,则返
6、回0,否则返回-1。若一个字符串顺读和倒读都一样时,称该字符串是回文字符串,例如:“LEVEL”是回文字符串,而“LEVAL”不是。函数函数2.1int palindrome(char S)char*pi,*pj;piS;pjs+strlen(S)-1:while(pipj&_(1)_)pi+;pj-;if(_(2)_)return-1;else return 0;2004-1 2004-1函数2.2说明函数f(char*str,char del)的功能是;将非空字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。例如若str的值为“33123333435”,del的值为3,调
7、用此函数后,将输出三个子字符串,分别为“12”、“4”和“5”。函数函数2.2void f(char*str,char del)int i,j,len;len=strlen(str);i=0;while(ilen)while(_(3)_)i+;/*忽略连续的标志字符*/*寻找从stri开始直到标志字符出现的一个子字符串*/j=i+1;while(stri!=del&strj!=0)j+;_(4)_“0”;/*给找到的字符序列置字符串结束标志*/printf(“%st”,&stri):_(5)_;2005-2 字符串computer 中长度为3的子串有_(32)_ 个。(32)A4 B5 C6 D7 2004-2 字符串是一种线性表,其特殊性表现在_(37)_(37)A.它的数据元素是一个字符B.它可以链式存储C.它可以顺序存储D.它的数据元素可以是多个字符 2004-1 以下关于字符串的判定语句中正确的是_(7)_。(7)A字符串是一种特殊的线性表 B串的长度必须大于零 C字符串不属于线性表的一种 D空格字符组成的串就是空串 答案答案2004-1 (1)*pi=*pi (2)pipj 或*pi!=*pj(3)stri=del (4)strj (5)i=j+1