串的基本运算 对于串的基本运算很多高级语言均提供了相应的运算符或标准的库函数来实现 为叙述方便先定义几个相关的变量 char s[]=dir/bin/appls[]=fileasms[]*p; int result; 下面以C语言中串运算介绍串的基本运算 求串长 int strlen(char *s);//求串s的长度 【例】printf(%dstrlen(s)); //输出s的串长 串复制 char *strcpy(char *to*from)//将from串复制到to串中并返回to开始处指针 【例】strcpy(ss); //s=dir/bin/appls串不变 联接char *strcat(char *tochar *from);//将from串复制到to串的末尾 //并返回to串开始处的指针 【例】strcat(s/); //s=dir/bin/appl/ strcat(ss); //s=dir/bin/appl/fileasm 串比较int strcmp(char *schar *s);//比较s和s的大小 //当s<ss>s和s=s时分别返回小于大于和等于的值 【例】result=strcmp(bakerBaker); //result> result=strcmp(); //result= result=strcmp(Joejoseph) //result< 字符定位 char *strchr(char *schar c);//找c在字符串s中第一次出现的位置 //若找到则返回该位置否则返回NULL 【例】p=strchr(s); //p指向file之后的位置 if(p) strcpy(pcpp); //s=filecpp 注意 ①上述操作是最基本的其中后 个操作还有变种形式strncpystrncath和strnchr ②其它的串操作见C的<stringh>在不同的高级语言中对串运算的种类及符号都不尽相同 ③其余的串操作一般可由这些基本操作组合而成 【例】求子串的操作可如下实现 void substr(char *subchar *sint posint len){ //s和sub是字符数组用sub返回串s的第pos个字符起长度为len的子串 //其中<=pos<=strlen(s)且数组sub至少可容纳len+个字符 if (pos<||pos>strlen(s)||len<) Error(parameter error!); strncpy(sub&s[pos]len);//从s[pos]起复制至多len个字符到sub }//substr |