一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第15天,点击查看活动详情。
字符串处理函数
1. puts函数-输出字符串的函数
- 一般形式:puts(字符数组)
- 作用:将一个字符串(以'\0'结束的字符系列)输出到终端。用puts函数输出的字符串中可以包含转义字符。
// puts
char str[] = { "China\nBeijing" };
puts(str);
2. gets函数-输入字符串的函数 ※
- 一般形式:gets(字符数组)
- 作用:是从终端输入一个字符串到字符串数组,并且得到一个函数值。该函数值是字符数组的起始地址。
3. strcat函数-字符串连接函数
- 一般形式:strcat(字符数组1, 字符数组2)
- 作用:是把两个字符数组中的字符串连接起来,把字符串2连接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值-字符数组1的地址。
- 字符数组1必须足够大,以便容纳连接后的新字符串
- 连接前两个字符串的后面都有'\0', 连接时将字符串1后面的'\0'取消,只在新串最后保留'\0'
4. strcpy和strncpy函数-字符串复制函数
- 一般形式:strcpy(字符数组1, 字符数组2)
- 作用:“字符串复制函数”,作用是将字符串2复制到字符数组1中去
- 字符数组1必须定义得足够大,以便容纳被复制的字符串2
- “字符数组1”必须写成数组名形式如(str1), “字符串2”可以是字符数组名,也可以是一个字符串常量
- 如果str1未初始化或赋值,则str1各字节中的内容是无法预知的,复制时将str2中发字符串和其后的'\0'一起复制到字符数组1中,取代字符数组1中前面几个字符,最后几个字符并不一定是'\0',而是str1中原有的最后4个字节的内容
- 不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。字符数组名是一个地址常量,它不能改变值
- 可以用strncpy函数将字符串2中前面n个字符复制到字符数组1中去。如
strnpy(str1, str2, 2);
// 将str2中最前面2个字符复制到str1中,取代str1中原有的最前面2个字符。但复制的字符个数n不应多于str1中原有的字符(不包括'\0')
5. strcmp函数-字符串比较函数
- 一般形式:strcmp(字符串1, 字符串2)
- 作用:比较字符串1和字符串2.
字符串比较的规则是:将两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到'\0'为止
- str1=str2,函数值为0
- str1>str2, 函数值为一个正整数
- str1<str2, 函数值为一个负整数
6. strlen函数-测字符串长度的函数
- 一般形式:strlen(字符数组)
- 作用:测试字符串长度的函数。函数的值为字符串中的实际长度(不包括'\0'在内)
7. strlwr函数-转换为小写的函数
- 一般形式:strlwr(字符串)
- 作用:将字符串中大写字母转换为小写字母
8. strupr函数-转换为大写的函数
- 一般形式:strupr(字符串)
- 作用:将字符串中小写字母换成大写字母
在使用字符串处理函数时,应当在程序文件的开头用
#include <string.h>