2)串复制(copy) char *strcpy(char *to,char *from); 该函数将串from复制到串to中,并且返回一个指 向串to的开始处的指针。 例如:strcpy(s3,s1);ls3=“dirtreeformat" (3)联接(concatenation) char *strcat(char *to,char *from) 该函数将串from复制到串to的末尾,并且返回 一个指向串to的开始处的指针。 例如:strcat(s3,”) strcat(s3,s2); ls3=“dirtreeformat/file.mem
(2)串复制(copy) char *strcpy(char *to,char *from); 该函数将串from复制到串to中,并且返回一个指 向串to的开始处的指针。 例如:strcpy(s3,s1); //s3=“dirtreeformat” (3)联接(concatenation) char *strcat(char *to,char *from) 该函数将串from复制到串to的末尾,并且返回 一个指向串to的开始处的指针。 例如:strcat(s3,”/”) strcat(s3,s2); //s3=“dirtreeformat/file.mem
4)串比较(compare) int strcmp(char *s1,char *s2); 该函数比较串s1和串s2的大小,当返回值小于0, 等于0或大于0时分别表示s1<s2八s1=s2或s1>s2 例如:result=:strcmp(“baker'”,”Baker')result>0 result=strcmp(“12”,”12");result=0 result=strcmp(“Joe",”Joseph");result<0 (5)字符定位(index) char strchr(char *s,char *c); 该函数是找c在字符串s中第一次出现的位置,若 找到则返回该位置,否则返回NULL。 例如:p=strchr(s2,”.”);p指向“file”之后的位置 if(p)strcpy(p,”.cpp");s2=“file.cpp
(4)串比较(compare) int strcmp(char *s1,char *s2); 该函数比较串s1和串s2的大小,当返回值小于0, 等于0或大于0时分别表示s1<s2\s1=s2或s1>s2 例如:result=strcmp(“baker”,”Baker”) result>0 result=strcmp(“12”,”12”); result=0 result=strcmp(“Joe”,”Joseph”); result<0 (5)字符定位(index) char strchr(char *s,char *c); 该函数是找c在字符串s中第一次出现的位置,若 找到则返回该位置,否则返回NULL。 例如:p=strchr(s2,”.”); p 指向“file”之后的位置 if(p) strcpy(p,”.cpp”); s2=“file.cpp
例:串的定位index(s,t,pos) 算法思想 算法思想: 1、在主串中取从第个字符起长度和串T相等的子串和 T比较 2、若相等,则求得函数值为引, 3、否则值增1直至S中不存在和串T相等的子串为止
例: 串的定位index(s,t,pos) 算法思想 算法思想: 1、在主串中取从第i个字符起长度和串T相等的子串和 T比较 2、若相等,则求得函数值为i, 3、否则i值增1直至S中不存在和串T相等的子串为止
int index(string s,string t,int pos){ if(pos>0){ n=strlen(s);m=strlen(t);i=pos; while(i<n-m+1){ substr(sub,s,i,m); if(strcmp(sub,t)!=0) ++i; else return(i); return(0);
int index(string s,string t,int pos){ if(pos>0){ n=strlen(s); m=strlen(t); i=pos; while(i<n-m+1){ substr(sub,s,i,m); if(strcmp(sub,t)!=0) ++i; else return(i); } } return(0); }
4.2串的表示和实现 因为串是特殊的线性表,故其存储结构与线性表的 存储结构类似。只不过由于组成串的结点是单个字符。 串的数据对象约束为字符集。 4.2.1定长顺序存储表示 定长顺序存储表示,也称为静态存储分配的顺序表。 它是用一组连续的存储单元来存放串中的字符序列。 所谓定长顺序存储结构,是直接使用定长的字符数组 来定义,数组的上界预先给出: #define maxstrlen 256 typedef char sstring[maxstrlen]; sstring s:/s是一个可容纳255个字符的顺序 串
4.2 串的表示和实现 因为串是特殊的线性表,故其存储结构与线性表的 存储结构类似。只不过由于组成串的结点是单个字符。 串的数据对象约束为字符集。 4.2.1定长顺序存储表示 定长顺序存储表示,也称为静态存储分配的顺序表。 它是用一组连续的存储单元来存放串中的字符序列。 所谓定长顺序存储结构,是直接使用定长的字符数组 来定义,数组的上界预先给出: #define maxstrlen 256 typedef char sstring[maxstrlen]; sstring s; //s是一个可容纳255个字符的顺序 串