字符串(幻灯片 精品).ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 方法二比方法一简单,效率高。但方法一很容易扩充到对任意(从键盘输入)的两个字符串的处理,而方法二就不得不再定义其他字符数组了。 * 字符数组str1和str2的内容在交换前后并没有改变! * * * * * * * 方法2中,第2个while语句的循环体可合并为“s1[i++]=s2[j++];”,进而,可以while语句简化为“while( (s1[i++]=s1[j++]) != \0);”,甚至进一步缩写为“while(s1[i++]=s1[j++]);” * * * * 程序中采用选择法,而不是起泡法,减少了交换的次数。但由于字符串是相对复杂的数据结构,使用strcpy函数复制字符串比较费时,造成程序的效率比较低。 * 程序将输入的字符串的地址(二维数组sData的行地址)存放在一维数组pStr中,从而为这些字符串建立了索引结构。排序是对索引进行的,排序的依据是字符串的大小,但交换操作是针对索引值进行的。 * 方法二中没有字符串的交换,因而具有较高的执行效率。但方法二的算法比较复杂,使用了更复杂的数据结构。 * 比较大小 字符串的大小由字符串中的字符的编码决定 对于任意两个字符串,从它们的第一个字符开始比较,若相同,则继续比较下一个字符,直到出现不同的字符或者遇到了结束符。若存在不同的字符,则编码较大的字符所在的字符串较大。如果同时遇到结束符,则两个字符串相等 ABC小于AbC ABC大于AB 123等于\x31\x32\x33 关系运算符不能用来比较字符串的大小,只能使用库函数 strcmp、strncmp和stricmp函数 函数的一般形式: strcmp(字符串1,字符串2) strncmp(字符串1,字符串2,整数n) stricmp(字符串1,字符串2) 函数的函数值都是整型的,如果函数值为0,表示两个字符串相等;如果函数值大于0,则“字符串1”大于“字符串2”;如果函数值小于0,则“字符串1”小于“字符串2” strcmp函数是最常用的函数之一,从左到右逐一比较每个字符,直到遇到不同的字符或遇到字符串结束为止 strncmp函数只比较两个字符串的前n个字符 用stricmp函数比较两个字符串时,将忽略字母符号的大小写 求若干字符串中的最大字符串 11 实际上,这也是一个求最大值问题 #include stdio.h #include string.h #define N 10 void main() { char strWord[N][20]; int i, iMax; printf( 顺序输入%d个字符串,用空格分开:\n, N); for( i=0; iN; i++) scanf( %s, strWord[i]); iMax=0; for(i=1; iN; i++) if( strcmp( strWord[i], strWord[iMax] ) 0 ) iMax=i; printf(第%d个字符串最大,为:%s, iMax+1, strWord[iMax]); } strstr函数 strstr函数的一般形式为: strstr(字符串1,字符串2) strstr函数的功能是在“字符串1”中查找“字符串2”,如果找不到,则函数返回空指针NULL,若找到了,则返回与“字符串1”中所包含的“字符串2”的首字符对应的指针 如果“字符串1”中包含“字符串2”,那么“字符串2”常被称作“字符串1”的子串 判断一个字符串中是否包含一个子串 12 #include stdio.h #include string.h void main() { char *pSrc=one world, one dream.; char *ps1=World, *ps2=one; char *p; printf(字符串:%s\n, pSrc); if( ( p=strstr( pSrc, ps1 )) ==NULL ) printf(未找到子串%s \n, ps1); else printf(子串%s在第%d位\n, ps1, p-pSrc+1 ); if( ( p=strstr(pSrc,ps2 )) ==NULL ) printf(未找到子串%s \n, ps2); else printf(子串%s在第%d位\n, ps2, p-pSrc+1 ); } 变换 strlwr和strupr函数 两个函数的一般用法是: strlwr(字符数组) strupr(字符数组) strlwr函数将存放在“字符数组”中的字符串的所有大写字母转化为小写字母,而strupr函数则相反 转换后得到的字符串仍存放在“字符数组”中 atoi和atof函数 这两个

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档