新编C语言程序设计教程PPT第7章函数.ppt
不能用字符串常量给字符数组赋值,也不能用一个字符数组给另一个字符数组赋值,如语句str1=comeon!;或str1=str2;都是错误的。可以用字符串常量初始化字符数组,字符串的赋值操作需用strcpy函数,正确的作法为:strcpy(str1,comeon!);或strcpy(str1,str2);。如语句charstr1[]=comeon!;注意strncpy函数01040203的一般形式为:strncpy(字符数组1,字符数组2,n)strncpy函数的功能是把字符数组2中所含字符串2的前n个字符复制到字符数组1的起始部分。特别注意:该函数不会在复制的字符后加\0字符,但是字符串2的长度小于n时,会以\0字符填充字符数组1直到复制完n个字符。此函数要求字符数组1的长度至少为n。如有charstr1[11]={IloveC!},str2[]=Hehe;,则执行完语句strncpy(str1,str2,2);后,字符数组str1中的字符串为HeloveC!。strncpy函数如果执行了语句strncpy(str1,str2,7);则字符数组str2中的字符串为Hehe,其状态如图7-11所示。printf(%s大于%s\n,str1,str2);04if(strcmp(str1,str2)0)03的一般形式为:strcmp(字符数组1,字符数组2)01strcmp(stringcompare字符串比较)函数的功能为比较两个字符数组中所含字符串的大小,如果字符数组1中的字符串大于字符数组2中的字符串则返回一个正整数;如果等于,则返回0;如果小于,则返回一个负整数,具体的返回值可参考例6-13。该函数常用的方式为;02strcmp函数使用输入缓冲区时,输入函数只有在缓冲区为空时才让用户输入数据,用户输入数据时,所有的输入会保存在缓冲区中,仅当用户按下回车键确认输入完成后,输入函数才返回。不使用输入缓冲区的输入函数每次执行时都会让用户输入数据。getch函数和getche函数执行时,只要用户按下一个键,它们会立即获得用户的输入并返回。getche函数会回显用户输入的字符,而getch函数不回显用户输入的字符。在程序的一次执行过程中,多次调用rand函数可以产生一系列的随机数,但是当再次执行程序时,rand函数产生的随机序列会与上次执行程序时产生的重复。分析例7-16算法可知,出现重复随机序列的原因在于seed变量的初值(也称“种子”)固定不变。新编C语言程序设计教程
清华大学出版社周二强软件学院计算机科学与工程系配套视频:
博客:库函数简介getchar函数、getch函数和getche函数rand函数、srand函数和time函数字符串处理函数综合实例第7章函数函数库是C语言必不可少的补充,常用的有标准输入输出库(stdio.h)、数学函数库(math.h)、标准库(stdlib.h)、日期时间库(time.h)、字符函数库(ctype.h)和字符串处理库(string.h)等。使用库函数,既可以提高编程效率,又可以提高程序的可靠性。函数库的详细介绍可参考有关资料,本节仅介绍几个常用的库函数。函数库7.6.1getchar函数、getch函数和getche函数getchar函数在stdio.h中声明,getch函数和getche函数在conio.h(控制台输入输出)中声明。getchar函数与getch函数及getche函数功能相似,它们可简单地理解为返回用户输入字符的ASCII码。不同之处在于:getchar函数使用输入缓冲区,而getch函数和getche函数不使用。使用缓冲区时?不使用时?例7-28getch函数、getche函数和getchar函数的区别例7-29回车键的返回值键盘上的回车键相当于两个字符,把当前位置移到本行开头的回车符(\r)和新起一行并把当前位置移到新行开头的换行符(\n)。输入回车键时,getchar函数和getch函数会返回什么字符呢?例7-29可以提供一个参考答案。7.6.2rand函数、srand函数和time函数rand函数和srand函数在stdlib.h中声明。rand函数的功能是返回一个0到RANDMAX之间的随机数。RANDMAX为stdlib.h中定义的符号常量,VC6.0中它的值为32767。VC6.0中rand函数所用的算法与例7-16相同。rand函数在使用时有何问题?函数rand的问题?问题的解决?srand函数的头部为voidsra