有哪些好的建站平台,制作wordpress导航页,有做微推客的网站吗,如何将网站部署到服务器目录
1.字符函数
1.1字符分类函数
1.2.字符转换函数
//统一字符串中的大小写
2.内存处理函数
2.1内存拷贝函数memcpy
//模拟实现memcpy
2.2内存移动函数memmove
//模拟实现memmove
2.3内存比较函数memcmp
2.4内存设置函数memset 1.字符函数
1.1字符分类函数
头文…目录
1.字符函数
1.1字符分类函数
1.2.字符转换函数
//统一字符串中的大小写
2.内存处理函数
2.1内存拷贝函数memcpy
//模拟实现memcpy
2.2内存移动函数memmove
//模拟实现memmove
2.3内存比较函数memcmp
2.4内存设置函数memset 1.字符函数
1.1字符分类函数
头文件#includectype.h
函数参数符合下列条件返回真正数否则返回假0iscntrl任何控制字符isspace空白字符 \f \n \t \r \v isdigit十进制数字0~9isxdigit十六进制数字0~9a~fA~Fislower小写字母a~zisupper大写字母A~Zisalpha字母a~zA~Zisalnum字母或数字0~9a~zA~Zispunct标点符号即任何不属于数字或字母的图形字符可打印isgraph任何图形字符isprint任何可打印字符包括图形字符和空白字符
1.2.字符转换函数 头文件#includectype.h 大写转小写tolower 小写转大写toupper for example //统一字符串中的大小写
#define _CRT_SECURE_NO_WARNINGS
#includestdio.h
#includectype.hint main()
{char arr[] i HavE aN ApPle;int i 0;while (arr[i]){if (isupper(arr[i])){printf(%c, tolower(arr[i]));}else{printf(%c, arr[i]);}i;}return 0;
}2.内存处理函数
2.1内存拷贝函数memcpy 格式void * memcpy ( void * destination, const void * source, size_t num ); 功能从源头 sour 拷贝 num 个字节到目的地 dest 中去。 实现memcpy功能的代码段 //模拟实现memcpy
#define _CRT_SECURE_NO_WARNINGS
#includestdio.h
#includeassert.h
void* my_memcpy(void* dest, const void* src, size_t num)//void* 要返回指针
{assert(dest src);void* ret dest;while (num--){*(char*)dest *(char*)src;//一个字节一个字节地拷贝dest (char*)dest 1;//不能写成(char*)dest这只是临时拷贝src (char*)src 1;//但是可以写成(char*)dest}return ret;
}
int main()
{int arr1[] { 1,2,3,4,5,6,7,8,9,10 };int arr2[10] { 0 };my_memcpy(arr2, arr1 2, 20);return 0;
}很好用是不是但是当重叠内存拷贝时my_memcpy的弊端就出现了见下图但是memcpy可以至少在VS编译器的库里面和memmove差不多。我们预想的是1 2 1 2 3 4 5 8 9 10结果却是1 2 1 2 1 2 1 8 9 10这时就需要memmove出马了~ 2.2内存移动函数memmove 格式void * memmove ( void * destination, const void * source, size_t num ); 功能从源头 sour 拷贝 num 个字节到目的地 dest 中去。 实现memmove功能的代码段 //模拟实现memmove
#define _CRT_SECURE_NO_WARNINGS
#includestdio.h
#includestring.h
#includeassert.hvoid* my_memmove(void* dest, const void* src, size_t num)
{void* ret dest;assert(dest src);if (dest src){//从前向后拷贝while (num--){*(char*)dest *(char*)src;dest (char*)dest 1;src (char*)src 1;}}else{//从后向前拷贝while (num--){*((char*)dest num) *((char*)src num);}}
}int main()
{int arr[] { 1,2,3,4,5,6,7,8,9,10 };my_memmove(arr 2, arr, 20);return 0;
}2.3内存比较函数memcmp 格式int memcmp ( const void * ptr1, const void * ptr2, size_t num ); 功能比较 dest 和 src 中 num 个字节返回整数正/负/0。 实现memmove功能的代码段 2.4内存设置函数memset 格式void * memset ( void * ptr, int value, size_t num ); 功能填充内存块。 ptr指向要填充的内存块的指针value要填充的值num要填充几个字节 实现memmove功能的代码段 注意函数要用在正确的地方如果想用此函数将 arr 数组中的0全部改成0是不行的char arr[10]{0}; memset(arr,1,40)memset臣妾做不到啊~~。因为这会将每个字节都改成1即0x00 00 00 00 -- 0x 01 01 01 01这根本不是1所以要“量力而行”哦。 最近有点懈怠了呀清醒清醒清醒