【C语言进阶:刨根究底内存操作函数】memcmp memset 字符分类和字符转换函数
本节重点内容:
⚡memcmp
- 比较从ptr1和ptr2指针开始的num个字节。
- 返回值如下:
memcmp函数的基本使用:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>int main()
{int arr1[] = { 1,2,3,4,6 };int arr2[] = { 1,2,3,4,7 };printf("%d\\n", memcmp(arr1, arr2, 16));printf("%d\\n", memcmp(arr1, arr2, 17));return 0;
}
运行结果如下:
⚡memset
- memset是以字节为单位来进行设置,使用时要注意。
memset函数的基本使用:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>int main()
{char arr[] = "hello world";memset(arr, 'x', 6);printf("%s\\n", arr);return 0;
}
运行结果如下:
⚡字符分类函数
函数 | 如果他的参数符合下列条件就返回真 |
iscntrl | 任何控制字符 |
isspace | 空白字符:空格‘ ’,换页‘\\f’,换行'\\n',回车‘\\r’,制表符'\\t'或者垂直制表符'\\v' |
isdigit | 十进制数字字符 0~9 |
isxdigit | 十六进制数字,包括所有十进制数字,小写字母a~f,大写字母A~F |
islower | 小写字母a~z |
isupper | 大写字母A~Z |
isalpha | 字母a~z或A~Z |
isalnum | 字母或者数字,a~z,A~Z,0~9 |
ispunct | 标点符号,任何不属于数字或者字母的图形字符(可打印) |
isgraph | 任何图形字符 |
isprint | 任何可打印字符,包括图形字符和空白字符 |
以上函数在使用时应引用头文件 <ctype.h> 。
举几个函数使用的例子:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<ctype.h>int main()
{printf("%d\\n", isdigit('x'));printf("%d\\n", isdigit('6'));printf("%d\\n", isspace('x'));printf("%d\\n", isspace(' '));printf("%d\\n", islower('x'));printf("%d\\n", islower('X'));return 0;
}
运行结果如下:
⚡字符转换函数
- 经过实验貌似这两个函数只能对单个字符进行大小写转换。
函数使用示例如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<ctype.h>int main()
{printf("%c\\n", tolower('X'));printf("%c\\n", toupper('x'));return 0;
}
运行结果如下:
写出一个代码将一句话转换为全小写输出:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<ctype.h>int main()
{char arr[20] = { 0 };gets(arr); //接收字符串int i = 0;while (arr[i]){if (isupper(arr[i])){arr[i] = tolower(arr[i]);}printf("%c", arr[i]);i++;}return 0;
}
运行结果如下:
感谢大家能够看完这篇博客,创作时长,小伙伴们觉得我的博客对你有帮助,不妨留下你的点赞的收藏,关注我,带你了解不一样的C语言。