当前位置: 首页 > news >正文

东莞市公租房申请网站-建设网药品销售推广方案

东莞市公租房申请网站-建设网,药品销售推广方案,网站备案更改需要多久,vc做网站目录 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字符分类函数

头文件:#include<ctype.h>

函数参数符合下列条件返回真(正数),否则返回假(0)
iscntrl任何控制字符
isspace空白字符:'  ',' \f' ,' \n ',' \t ',' \r ',' \v '
isdigit十进制数字:0~9
isxdigit十六进制数字:0~9,a~f,A~F
islower小写字母:a~z
isupper大写字母:A~Z
isalpha字母:a~z,A~Z
isalnum字母或数字:0~9,a~z,A~Z
ispunct标点符号:即任何不属于数字或字母的图形字符(可打印)
isgraph任何图形字符
isprint任何可打印字符:包括图形字符和空白字符

1.2.字符转换函数 

头文件:#include<ctype.h>

大写转小写:tolower;  小写转大写:toupper

for example: 

//统一字符串中的大小写

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<ctype.h>int 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
#include<stdio.h>
#include<assert.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
#include<stdio.h>
#include<string.h>
#include<assert.h>void* 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,所以要“量力而行”哦。


最近有点懈怠了呀,清醒清醒清醒!!!

http://www.mmbaike.com/news/45020.html

相关文章:

  • 做网站视频上传到哪儿sem公司
  • 一个公司网站备案网络营销的工具和方法
  • 桂林 网站建设网站外链工具
  • 国土资源局网站建设制度爱站网排行榜
  • 大连微信网站制作色盲测试图动物
  • 备案服务网站软件定制
  • 一个网站的上线流程怎么接推广
  • 山东网站建设公司南昌网站建设
  • 公司注册资金可以乱写吗郑州seo代理外包公司
  • 饮料企业哪个网站做的比较好百度竞价返点一般多少
  • 购物网站论文百度竞价电话
  • 麻江网站建设学网络营销有用吗
  • 广州外贸独立网站制作搜索关键词怎么让排名靠前
  • 绿色wordpress主题模板下载地址北京网站优化技术
  • 长春自助建站软件永久免费的电销外呼系统
  • 上海做网站 公司北京疫情最新新闻
  • 天津宝坻网站建设张磊关键词工具网站
  • 深圳南山企业网站建设百度广告销售
  • 精品手机网站案例全网网站推广
  • 网站建设进度报告德阳网站seo
  • 怎么知道网站的空间是谁做的互联网营销方案
  • 帮别人做违法网站友情链接交易平台源码
  • 做实体识别的网站个人接广告的平台
  • 京东这样的网站是怎么做的竞价恶意点击报案
  • 佳木斯 网站建设百度推广系统营销平台
  • 安全的企业网站开发seo快速提升排名
  • 如何做论坛网站 知乎网页设计主要做什么
  • 盐城网站开发招代理班级优化大师头像
  • 阿里云虚拟主机做2个网站吗沈阳seo公司
  • joomla 网站模版做搜索引擎优化的企业