C语言中必须掌握的字符串处理函数.doc
《C语言中必须掌握的字符串处理函数.doc》由会员分享,可在线阅读,更多相关《C语言中必须掌握的字符串处理函数.doc(7页珍藏版)》请在咨信网上搜索。
那些你不太熟悉的字符串处理函数 函数集合(全部包含在string.h头文件中) Int strcoll(const char *s1, const char *s2); Size_t strxfrm(char *s1, const char *s2, size_t n); Char *strchr(const char *s, int c); Char *strrchr(const char *s, int c); Size_t strcspn(const char *s1, const char *s2); Size_t strspn(const char *s1, const char *s2); Char * strpbrk(const char *s1, const char *s2); Char *strstr(const char *s1, const char *s2); Char *strtok(char *s1, const char *s2); Strcoll() Strcoll是一个比较两个字符串大小的函数,比较规则是LC_COLLATE;默认情况下和strcmp等函数一样是根据ascii码排序,但是对于设置了lc_collate语言环境的情况下,则根据设置的环境比较大小,譬如,汉字根据拼音排序。 例子: #include <stdio.h> #include <string.h> int main() { char *s1="i aove"; char *s2="i hate"; int i=strcoll(s1,s2); int j=strcmp(s1,s2); printf("i=%d,j=%d\n",i,j); return 0; } Strxfrm() Strxfrm是一个字符串转换的函数,叫字符串s2转换后,保存到s1。这种转换根据lc_collate进行。当区域选项是“POSIX”或者“C”时,函数和strncpy一样。返回被转换的字符数(不包括结束的空字符) 例子: #include <stdio.h> #include <string.h> int main() { char s1[100]="i aove"; char *s2="i hate"; int i=strxfrm(s1,s2,99-strlen(s1)); printf("i=%d,s1= %s",i,s1); return 0; } Strchr() Strchr是一个寻找字符c在字符串s中第一次出现的位置,终止用的空字符被认为是返回串的一部分。返回定位字符的指针,如果没有,则返回空指针。 #include <stdio.h> #include <string.h> int main() { char *s1="i am a student"; char c='m'; char *des=strchr(s1,c); printf("是第%d个,字符为:%c",des-s1+1,*des); return 0; } Strrchr() Strrchr寻找字符c在字符串s中最后一次出现的位置,终止符被认为是串的一部分。函数返回找到的字符的指针,如果没有,则返回空指针。 #include <stdio.h> #include <string.h> int main() { char *s1="i am a student"; char c='t'; char *des=strrchr(s1,c); printf("是第%d个,字符为:%c",des-s1+1,*des); return 0; } Strcspn() Strcspn计算s1指向的字符串中完全不是由s2字符串中的字符组成的最大初始段的长度。也就是说从头开始对比与s2串的字符后都不相同的连续字符的个数 #include <stdio.h> #include <string.h> int main() { char *s1="abcdefghijklmn abc abcd"; char *s2="bc"; int i=strcspn(s1,s2); printf("i=%d\n",i); return 0; } Strspn() Strspn计算s1指向的字符串完全由s2指向的字符串中的字符组成的最大初始段的长度。也就是说s1从头开始比,如果说第一个字符都不在s2中,则返回0,如果在,则比较第二个字符,返回值+1,依次比较,直到找到不同的为止; 例子 #include <stdio.h> #include <string.h> int main() { char *s1="abcdefghijklmn abc abcd"; char *s2="bc"; int i=strspn(s1,s2); printf("i=%d\n",i); return 0; } #include <stdio.h> #include <string.h> int main() { char *s1="abcdefghijklmn abc abcd"; char *s2="abc"; int i=strspn(s1,s2); printf("i=%d\n",i); return 0; } Strpbrk() Strpbrk()确定s2字符串中的任意字符在s1指向的字符串中首次出现的位置,返回该字符的指针,如果s1中没有s2中的任意字符,则返回空指针。 #include <stdio.h> #include <string.h> int main() { char *s1="abcdefghijklmn abc abcd"; char *s2="kji"; char* i=strpbrk(s1,s2); printf("第%d个,字符为:%c\n",i-s1+1,*i); return 0; } Strstr() Strstr返回一个字符指针,确定s1字符串中第一次出现s2字符串中的字符序列(必须是字符一样,顺序一样)的位置。如果没有找到该串,则返回空指针,如果s2长度为0,则返回s1. #include <stdio.h> #include <string.h> int main() { char *s1="abcdefghijklmn abc abcd"; char *s2="ghi"; char* str=strstr(s1,s2); if(str==NULL) { printf("null\n"); } else { printf("%c",*str); } return 0; } Strtok() Strtok()以s2字符串为界,对s1字符串进行切割,从s1的头部开始对s1进行查找,一旦找到与s2字符串中的任意字符的相同的字符,则在该位置截断,s1的搜索位置会被静态变量记录下来,如果想从截断部分在进行一次截断查询,则需要将s1设置为NULL再执行该函数一次。这里要注意第一个字符串变量需要是一个可以改变的变量。 #include <stdio.h> #include <string.h> int main() { char s1[100]="abcdefghijklmn abc abcd"; char *s2="bdk"; char* str=strtok(s1,s2); while(str) { printf("s=%s\n",str); str=strtok(NULL,s2); } return 0; }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 必须 掌握 字符串 处理 函数
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文