初学字符函数

字符分类函数

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 任何可打印字符,包括图形字符和空白字符

以上的字符分类函数 如果不满足条件会返回“0”,如果满足 会返回非0数

例如:

#include<stdio.h>
#include<ctype.h>

int main()
{
    int ret = islower('a');
    printf("%d\n",ret);


return 0;
}

字符转换函数

int tolower 将字符转换为小写

int toupper 将字符转换为大写

如果要转换的满足条件 则不变

内存相关的函数

memcpy

memcpy和strcpy很相似 都能实现拷贝功能 但是strcpy只限拷贝字符串 但memcpy可以拷贝任意类型数据所以memcpy的参数 都是以指针void*类型来接受数据 

模拟实现memcpy

void* my_memcpy(void* dest, const void* scr, size_t sz)
{
	assert(dest && scr);
	while (sz--)
	{
		*(char*)dest = *(char*)scr;
		dest = (char*)dest + 1;
		scr = (char*)scr + 1;


	}

}

注意my_mymcoy要在不重叠的内存下进行拷贝 当我们发现使用vs2022的环境下 会发现mymcoy在重叠的内存下也可以拷贝 在重叠的内存下拷贝应该用mymmove进行拷贝

memset

将“hello world” 中“wor”改为“x”

int main()
{
	char arr[20] = "hello world";
		memset(arr + 6, 'x', 3);
		printf("%s", arr);




	return 0;
}

memset是以字节为单位设置内存的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值