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

网站网格布局广东广州网点快速网站建设

网站网格布局,广东广州网点快速网站建设,温州服务网站建设,网站 集约化建设 汇报❤个人主页:折枝寄北的博客 ❤专栏位置:简单入手C语言专栏 目录 前言1. 错误信息报告1.1 strerror 2. 字符操作2.1 字符分类函数2.2 字符转换函数 3. 内存操作函数3.1 memcpy3.2 memmove3.2memset3.3 memcmp 感谢您的阅读 前言 当你写下strcpy(dest, s…

折枝寄北主页图
❤个人主页:折枝寄北的博客
❤专栏位置:简单入手C语言专栏

目录

  • 前言
  • 1. 错误信息报告
    • 1.1 strerror
  • 2. 字符操作
    • 2.1 字符分类函数
    • 2.2 字符转换函数
  • 3. 内存操作函数
    • 3.1 memcpy
    • 3.2 memmove
    • 3.2memset
    • 3.3 memcmp
  • 感谢您的阅读

前言

当你写下strcpy(dest, src)这行看似无害的代码时,是否意识到自己正在操作系统的血管里进行一场没有安全绳的高空走钢丝?在C语言的世界里,字符串从来都不是温顺的数据羔羊,而是戴着可爱面具的"内存刺客"——那些优雅的str开头的函数库,既是程序员最亲密的工具,也是引发段错误(Segmentation Fault)的经典元凶。

1. 错误信息报告

1.1 strerror

标准格式:

char * strerror ( int errnum );

功能:

获得指向错误信息的地址 C语言的库函数在运行的时候,如果发生错误,就会将错误存在一个变量中,这个(全局)变量是:errno
错误码是一些数字:1,2,4,5。。。 我们需要将错误码翻译成错误信息

代码示例部分:
示例一

#include <stdio.h>
#include <string.h>
#include <errno.h>//必须包含的头文件
int main ()
{FILE * pFile;pFile = fopen ("unexist.ent","r");if (pFile == NULL)printf ("Error opening file unexist.ent: %s\n",strerror(errno));//errno: Last error numberreturn 0;
}

示例二

int main()
{printf("%s\n", strerror(0));printf("%s\n", strerror(1));printf("%s\n", strerror(2));printf("%s\n", strerror(3));printf("%s\n", strerror(4));printf("%s\n", strerror(5));return 0;
}#include<errno.h>
int main()
{//打开文件FILE* pf = fopen("test.txt", "r");if (pf == NULL){printf("%s\n",strerror(errno));//perror  打印错误信息//在打印错误信息前,会先打印自定义的信息perror("fopen");//printf("文件打开失败\n");return 1;}else{printf("文件打开成功\n");}//关闭文件fclose(pf);return 0;//如果文件打开成功,会返回一个有效的指针//打开失败,返回一个NULL指针
}

2. 字符操作

简单列举出部分字符操作函数,供大家自行学习。(全写出来篇幅过长,不易阅读)

2.1 字符分类函数

函数 --------如果他的参数符合下列条件就返回真
1.iscntrl----- 任何控制字符
2.isspace -----空白字符:空格‘ ’,换页‘\f’,换行’\n’,回车‘\r’,制表符’\t’或者垂直制表符’\v’
3.isdigit---- 十进制数字 0~9
4.isxdigit ----十六进制数字,包括所有十进制数字,小写字母a-f,大写字母A~F
5.islower---- 小写字母a~z
6.isupper ----大写字母A~Z
7.isalpha ----字母a-z或A~Z
8.isalnum ----字母或者数字,a-z,A-Z,0~9
9.ispunct ----标点符号,任何不属于数字或者字母的图形字符(可打印)
10.isgraph ----任何图形字符
11.isprint ----任何可打印字符,包括图形字符和空白字符

2.2 字符转换函数

int tolower ( int c );
int toupper ( int c );

代码示例:

字符转换
eg:I Have Apple.
int main()
{char arr[] = "I Have Apple.";int i = 0;while (arr[i]){if (isupper(arr[i])){arr[i] = tolower(arr[i]);}printf("%c", arr[i]);i++;}return 0;
}

3. 内存操作函数

3.1 memcpy

标准格式:

void * memcpy ( void * destination, const void * source, size_t num );

功能:

strcpy只能拷贝字符串
memcpy可以拷贝其他类型的数据

注意:

  • 函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。
  • 这个函数在遇到 ‘\0’ 的时候并不会停下来。
  • 如果source和destination有任何的重叠,复制的结果都是未定义的。
    代码示例部分:
#include <stdio.h>
#include <string.h>
struct{char name[40];int age;
} person, person_copy;
int main ()
{char myname[] = "Pierre de Fermat";/* using memcpy to copy string: */memcpy ( person.name, myname, strlen(myname)+1 );person.age = 46;/* using memcpy to copy structure: */memcpy ( &person_copy, &person, sizeof(person) );printf ("person_copy: %s, %d \n", person_copy.name, person_copy.age );return 0;
}

3.2 memmove

标准格式:

void * memmove ( void* destination, const void * source, size_t num );

功能及注意:

1.和memcpy的差别就是memmove函数处理的源内存块和目标内存块是可以重叠的。
2.如果源空间和目标空间出现重叠,就得使用memmove函数处理。

代码示例部分:

include <stdio.h>
#include <string.h>
int main ()
{char str[] = "memmove can be very useful......";memmove (str+20,str+15,11);puts (str);return 0;
}

3.2memset

功能:

以字节为单位来设置内存中的数据

代码示例部分:

int main()
{char arr[] = "hello world";memset(arr, 'x', 5);printf("%s\n", arr);memset(arr+6, 'y', 5);printf("%s\n", arr);return 0;
}

3.3 memcmp

标准格式:

int memcmp ( const void * ptr1, const void * ptr2, size_t num );

功能:

比较从ptr1和ptr2指针开始的num个字节

代码示例部分:

#include <stdio.h>
#include <string.h>
int main ()
{char buffer1[] = "DWgaOtP12df0";char buffer2[] = "DWGAOTP12DF0";int n;n=memcmp ( buffer1, buffer2, sizeof(buffer1) );if (n>0) printf ("'%s' is greater than '%s'.\n",buffer1,buffer2);else if (n<0) printf ("'%s' is less than '%s'.\n",buffer1,buffer2);else printf ("'%s' is the same as '%s'.\n",buffer1,buffer2);return 0;
}

感谢您的阅读

http://www.dt0577.cn/news/55564.html

相关文章:

  • 中国建设银行 英文网站网站seo什么意思
  • discuz做资讯网站网站搜索优化官网
  • 湖北做网站价格东莞网络营销平台
  • 程序员做图网站太原seo网站排名
  • qt 可以做网站吗百度关键词分析
  • 石家庄市住房和建设局网站seo首页排名优化
  • 药业集团网站建设方案软文范文200字
  • 景观石网站建设方案哈尔滨网站推广
  • asp.net开发的网站世界十大搜索引擎及地址
  • seo信息优化seo发贴软件
  • 赣县企业网站建设网站运营主要做什么
  • 网站建设asp编程软件开发公司简介
  • 高端品牌网站定制设计如何申请百度竞价排名
  • 红安建设局网站百度商城购物
  • 如何用word做简单的网站百度开店怎么收费
  • 网站做担保交易软文广告经典案例300
  • 仙桃做网站的公司有哪些自媒体怎么赚钱
  • 网站贴子推广怎么做长春seo关键词排名
  • 山西省建设注册中心网站seo数据统计分析工具有哪些
  • 安卓app做网站外壳app拉新一手渠道商
  • 自己做彩票网站简单吗旅游景区网络营销案例
  • 室内设计说明500字简约seo关键词排名优化价格
  • 制作网站的最新软件搜索引擎调价平台哪个好
  • 如何处理并发量大的购物网站网络营销的四种方式
  • 中国建筑网官网手机版青岛网站关键词优化公司
  • 简单个人网站模板网络营销策划案
  • 动态背景网站百度营销平台
  • 婚庆公司网站的设计与实现湖北seo诊断
  • 教学网站前台模板营销软文200字
  • bootstrap网站开发的安全性培训机构不退费最有效方式