复习:c语言中常用的串运算 注:用C处理字符串时,要调用标准库函数include<string.h> 类C 串比较:int stremp(char*sl,char*s2); StrCompare(S,T) 求串长:int strlen(char*s; StrLength(S) 串连接:char strcat(char*to,char*from) Concat(&T,S1,S2) 子串T定位:char strchr(char*s,char*c)Index(S,T,pos) 注:Concat操作=concatenation,把 多个短字符串合并为长字符串 6
6 注:Concat操作=concatenation,把 多个短字符串合并为长字符串 复习:C语言中常用的串运算 C 串比较:int strcmp(char *s1,char *s2); 求串长:int strlen(char *s); 串连接:char strcat(char *to,char *from) 子串T定位:char strchr(char *s,char *c); . 注:用C处理字符串时,要调用标准库函数#include<string.h> 类C StrCompare(S,T) StrLength(S) Concat(&T, S1, S2) Index(S, T, pos)
例1:设s=I AM A STUDENT’,t='GOOD, q=NORKER’。求: StrLength(s)= 141/参死R71 Index(S,T,pos) /返回子串T在pos StrLength(t) 之后的位置 SubString(&sub,s,8,7)=STUDENT' SubString(&sub,t,2,1)=O' Replace(&S,T,V) Index(s,‘A'斤 /用子串V替换子串T Index(s,t)= 中没有=GOOD!) Replace(&s,'STUDENT',q )='IAMA WORKER
7 Replace(&S, T,V) // 用子串V替换子串T 设 s =’I AM A STUDENT’ , t =’GOOD’ , q=’WORKER’。求: 例1: StrLength(s) = StrLength(t) = SubString(&sub,s, 8, 7)= SubString(&sub, t, 2, 1)= Index(s, ‘A’)= Index(s, t)= Replace( &s, ‘STUDENT’, q )= 14 //参见P71 4 ‘STUDENT’ ‘O’ 3 0 ( s中没有t=’GOOD’ !) Index(S, T, pos) // 返回子串T在pos 之后的位置 ’I AM A WORKER’
提问:当s=IQM④STUDENT时, INDEX(s,A,pos)=3,若想搜索后面那个‘? 怎么办? 答:根据教材P71倒1行的函数说明,INDEX(s,A)返 回的只是“第一次”出现的位置。 如果还要搜索后面的A,则pos变量要跟着变才行。 也就是说,要把得到的”第一次”位置再代入 INDEX(s,'A',pos)函数中循环操作才行。 8
8 提问: 当s =’I AM A STUDENT’时, INDEX(s,’A’ ,pos)=3,若想搜索后面那个‘A’ 怎么办? 答: 根据教材P71倒1行的函数说明, INDEX(s,’A’)返 回的只是“第一次”出现的位置。 如果还要搜索后面的A,则pos变量要跟着变才行。 也就是说,要把得到的“第一次”位置再代入 INDEX( s,’A’ ,pos)函数中循环操作才行