- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.3 字符数组与字符串 3、字符串长度求取函数 strlen(str); 求str所代表的字符串的长度,不包括字符串结束标志’\0’。 int len; char str[20]= China; len=strlen(str); //len的值为5 6.3 字符数组与字符串 4、字符串复制函数 strcpy( ) 函数调用格式:strcpy(str1,str2 ); 函数功能:将字符串str2复制到str1对应的字符数组 或存储区域中。 char str1[20],str2[20]= China; strcpy(str1,str2); puts(str1); //输出字符串str1,即China 说明:str1的存储空间不能小于str2的存储空间。 6.3 字符数组与字符串 5、字符串连接函数 strcat( ) 函数调用格式:strcat(str1,str2); 函数功能:去掉str1后的’\0’,将字符串str2连接到str1的有效字符之后。 char str1[20]= Hello!,str2[20]= China.; strcat(str1,str2); puts(str1); //输出字符串str1,即Hello!China. 说明:str1的存储空间要能容得下连接后的字符串。 6.3 字符数组与字符串 6、字符串比较函数 strcmp( ) 函数调用格式:strcmp(str1,str2); 函数功能:按字典序比较字符串str1和str2的大小。 比较规则:将两个字符串自左至右逐个字符按ASCII值大小比较,直到出现不同的字符或遇’\0’为止。若全部字符相同,则认为两个字符串相等,返回0值;否则,计算第一对不同字符的ASCII值之差,若为正整数,则str1str2,返回值为1;若为负整数,则str1str2,返回值为-1。 6.3 字符数组与字符串 char str1[20]= Chinese,str2[20]= China; if(strcmp(str1,str2)0) //比较大小,输出较大者 puts(str1); else puts(str2); 【例6-22】 注意:字符串的比较,不能用str1str2的形式来实现。 6.4 综合应用案例 例6-23 采用冒泡法对一维数组中的十个整数排序 分析 设一维数组a有N个元素,要求从小到大排序。冒法排序的过程描述如下: (1)每次从首元素开始两两比较,即a[j]和a[j+1]比较,若a[j]a[j+1]则两元素交换,否则不交换。 (2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。每对元素比较后都可得到“小数在先,大数在后”的结果,这样进行一轮以后,数组最大值就排在了数组最后一个位置。 (3)针对所有的元素(除最后一个元素)重复以上的步骤,数组次大值就再倒数第二的位置。 (4)依此类推,经过N-1轮比较后完成排序。 6.4 综合应用案例 5 4 0 9 1 2 8 4 5 0 9 1 2 8 4 5 0 9 1 8 2 4 5 0 9 8 1 2 4 5 0 9 8 1 2 最大值 一轮排序 4 5 0 9 1 2 8 #include stdio.h #define N 10 void main() { int i,j,k,t,a[N]; printf(请输入%d个整数:\n,N); //输入待排序的N个整数 for(i=0;iN;i++) scanf(%d,a[i]); for(i=0;iN-1;i++) //N个整数需要N-1轮排序 { for(j=0;jN-1-i;j++) //每轮排序中的两两比较 { if(a[j]a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } 参考代码 printf(第%d轮排序后的情况为:\n,i+1); for(k=0;kN;k++) //输出每轮排序后的情况 { if(k==N-1) printf(%d,a[k]); else printf(%d,,a[k]); } printf(\n
文档评论(0)