欢迎来到天天文库
浏览记录
ID:39230971
大小:353.81 KB
页数:21页
时间:2019-06-28
《字符串处理函数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第13章字符串处理函数在本章的学习中,需要重点掌握以下知识点:putchar函数和getchar函数的正确使用;puts函数和gets函数的正确使用;strcpy函数和strncpy函数的正确使用;strcat函数和strncat函数的正确使用;strncmp函数和strcmp函数的正确使用;strupr函数和strlwr函数的正确使用。13.1输入和输出函数输入输出操作的使用十分频繁,C标准库为字符和字符串分别专门定义了几组输入输出函数。其中包括:putchar函数和getchar函数,它们提供了字符的输入输出操作;puts函数和g
2、ets函数,它们提供了字符串的输入输出操作。本节将分别讨论它们的使用。13.1.1putchar函数和getchar函数putchar函数和getchar函数提供了字符的输入和输出操作。putchar的作用是向标准输出打印一个字符。其使用方式一般如下:01charc;02…03putchar(c);如果输出成功,putchar函数的函数值为输出字符的ASCII码值;如果失败,putchar返回一个EOF符号。13.1.1putchar函数和getchar函数getchar函数的作用是从标准输入以字符型形式读入值赋值给一个字符。其使用方
3、式一般如下:01charc;02c=getchar();执行上述语句后,getchar函数从标准输入获得一个值,并把该值作为函数值赋值给字符c。13.1.2puts函数和gets函数puts函数和gets函数提供了字符串的输入和输出操作。puts函数的作用是向标准输出打印一个字符串。其使用方式如下:01charstr[]=“LinuxTerminal”;02puts(str);执行上述语句后,str的有效内容(直到第一个’ ’)被输出到标准输出。如果函数执行成功,该函数的函数值为一个非负数;否则,返回值为EOF。如果上述第2行语句为
4、i=puts(str);i将获得puts函数的函数值。gets函数的作用是从标准输入读取一个字符串赋给其参数。调用的形式如下:charstr[20]=“ ”;gets(str);13.1.2puts函数和gets函数执行上述语句后,str将从标准输入获取一个字符串,直到遇到一个回车符’’或EOF(使用【Ctrl+C】可以输入EOF)。例如,如果输入为:ahandsomeman则字符数组str被赋值为“ahandsomeman”。需要注意的是,由于字符串“ahandsomeman”有效内容为14个字符,所以在这个赋值过程中,字符数
5、组只有前15个字符(加上1个字符串终止符)被赋值,其剩余的5个字符并不会被改变,保留原来的值。同时,str只能获取其有效空间内的字符,如果输入的字符超过20个,那么str也只能获取20个字符,但是其他多余的字符仍然会被继续赋值给str有效空间后的内存空间。这样会导致修改外部内存空间,从而导致一些不可预测的问题。13.2复制和拼接字符串复制和拼接也是应用频繁的操作。C标准库提供了strcpy函数和strncpy函数来实现字符串复制的功能,并提供了strcat函数和strncat函数来实现字符串拼接的功能。本节将分别讨论两者的使用。13.
6、2.1strcpy函数C语言为字符串的复制操作也定义了一个strcpy函数。使用形式如下:strcpy(str1,str2);其中str1和str2为字符串。执行该语句后,strcpy函数会将str2的前n个字符复制到str1的前n个字符空间。需要注意的是,如果str2的有效字符不足n个,那么该函数会将str1的其余空间赋值为’ ’。13.2.1strcpy函数strcpy函数不是一个安全的函数。由于该函数会为一个字符数组str1赋值,因此该赋值不能超过超过str1的有效内存空间,如果超过了将会覆盖外部内存空间,从而可能导致不可预测
7、的问题。因此,使用该函数时,必须注意两个字符串的字长。13.2.2strncpy函数C语言为字符串的复制操作还定义了一个更为安全strncpy函数。使用形式如下:strncpy(str1,str2,n);其中str1和str2为字符串,n为整型变量。执行该语句后,strncpy函数会将str2的前n个字符复制到str1的前n个字符空间。需要注意的是,如果str2的有效字符不足n个,那么该函数会将str1的其余空间赋值为’ ’。13.2.2strncpy函数与strcpy函数类似,strncpy函数也不是一个绝对安全的函数。当n大于s
8、tr1的字长空间时,同样也会发生溢出的情况。但是,由于n的存在,使程序员可以显式地控制复制字符串的大小,所以该函数比strcpy更为安全。因此,因此使用该函数时,要注意n的使用,一般n不能大于str1所占的内存大小。13
此文档下载收益归作者所有