内容正文:
第7章 函数
第7章 函数
函数定义
函数调用及函数声明
数组作形参
变量的作用域
全局变量作用域的扩展
限制文件作用域
函数的易用性
递归1
递归2
库函数1
库函数2
团队开发++
库函数2
这节课我们讨论一些字符串处理函数。
3
7.6.3 字符串处理函数
字符串是用一对双撇号("")括起来的一串字符,如"Hello, World!"。字符串中的字符会用连续的存储单元存储,且用0号字符'\0'作为结束标志。作为结束标志的0号字符'\0'通常省略,存储字符串时会自动加上。
字符串处理函数用来处理字符串,常用的有strcat函数、strcpy函数、strncpy函数、strcmp函数和strlen函数等,它们都在 string.h中声明。
字符串常存储于字符数组中,因此,分析字符串处理函数时常用字符数组代替字符串。
字符串是用一对双撇号("")括起来的一串字符,如"Hello, World!"。字符串中的字符会用连续的存储单元存储,
且用0号字符'\0'作为结束标志。作为结束标志的0号字符'\0'通常省略,存储字符串时会自动加上。
字符串处理函数用来处理字符串,常用的有strcat函数、strcpy函数、strncpy函数、strcmp函数和strlen函数等,
它们都在 string.h中声明。
字符串常存储于字符数组中,因此,分析字符串处理函数时常用字符数组代替字符串。
4
strcat函数(string catenate 字符串连接)
一般形式为:strcat(字符数组1,字符数组2)
strcat函数的作用是把字符数组2中的字符串2复制并连接到字符数组1中字符串1的后面,函数执行后,字符数组1中的字符串由字符串1和字符串2连接而成,而字符数组2中的字符串不变。
注意:字符数组1必须能容纳新的字符串。
strcat函数的一般形式为:strcat(字符数组1,字符数组2)
strcat函数的作用是把字符数组2中的字符串2复制并连接到字符数组1中字符串1的后面,函数执行后,
字符数组1中的字符串由字符串1和字符串2连接而成,而字符数组2中的字符串不变。
注意:字符数组1必须能容纳新的字符串。
5
例7-31 strcat函数的使用
程序中使用strcat函数将数组str1和str2中的两个字符串连接起来。
6
strcpy函数(string copy 字符串拷贝)
一般形式为:strcpy(字符数组1,字符数组2)
strcpy函数的功能是将字符数组2中的字符串2拷贝到字符数组1中,最终,两个数组中的字符串均为字符串2。
此函数同样要求字符数组1能容纳新的字符串。
如有char str1[11]={"I love C!"}, str2[ ]={"Hehe"};,当执行完strcpy(str1, str2)后,字符数组str1的变化如图所示。
strcpy函数的一般形式为:strcpy(字符数组1,字符数组2)
strcpy函数的功能是将字符数组2中的字符串2拷贝到字符数组1中,最终,两个数组中的字符串均为字符串2。
此函数同样要求字符数组1能容纳新的字符串。
如有char str1[11]={"I love C!"}, str2[ ]={"Hehe"};,当执行完strcpy(str1, str2)后,字符数组str1的变化如图所示。
字符数组str1中只有相关的数组元素会受到影响。
7
不能给字符数组赋值
不能用字符串常量给字符数组赋值,也不能用一个字符数组给另一个字符数组赋值,有char str1[10], str2[10];,语句str1="come on!";或str1=str2;都是错误的。
字符串的赋值操作需用strcpy函数,正确的作法为:strcpy(str1, "come on!");或strcpy(str1, str2);。
可以用字符串常量初始化字符数组,如语句char str1[ ]="come on!";
不能给数组赋值。不能用字符串常量给字符数组赋值,也不能用一个字符数组给另一个字符数组赋值,
有char str1[10], str2[10];,语句str1="come on!";或str1=str2;都是错误的。
字符串的赋值操作需用strcpy函数,正确的作法为:strcpy(str1, "come on!");或strcpy(str1, str2);。
可以用字符串常量初始化字符数组,如语句char str1[ ]="come on!";
8
strncpy函数
一般形式为strncpy(字符数组1, 字符数组2, n)。strncpy函数的功能是把字符数组2中的字符串的前n个字符复制到字符数组1的起始部分。若字符串的长度小于n时,会用'\0'字符补足n个字符。
如有char str1[