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

多层分销网站建设11月将现新冠感染高峰

多层分销网站建设,11月将现新冠感染高峰,怎么备份网站,整合网络营销策划上篇文章介绍了一些常用的字符串函数#xff0c;大家可以跳转过去浏览一下#xff1a;c语言进阶部分详解#xff08;详细解析字符串常用函数#xff0c;并进行模拟实现#xff08;上#xff09;#xff09;_总之就是非常唔姆的博客-CSDN博客 今天接着来介绍一些#x…上篇文章介绍了一些常用的字符串函数大家可以跳转过去浏览一下c语言进阶部分详解详细解析字符串常用函数并进行模拟实现上_总之就是非常唔姆的博客-CSDN博客 今天接着来介绍一些  目录 一.字符串查找 1.strstr 1.1示例 1.2注意事项 1.3模拟实现 2.strtok 2.1示例 2.2注意事项 二.错误信息报告 1.strerror() 1.1示例 1.2注意事项 三.内存操作函数 1.memcpy() 1.1示例 1.2注意事项 2.memmove 2.1示例 2.2注意事项 3.memset 3.1示例 3.2注意事项 4.memcmp 4.1示例 4.2注意事项 一.字符串查找 1.strstr strstr是一个C标准库函数用于在一个字符串中查找另一个字符串的第一次出现的位置。它的原型如下 char *strstr(const char *haystack, const char *needle); strstr函数接受两个参数haystack是要搜索的字符串needle是要查找的子字符串。函数返回一个指向第一次出现的子字符串的指针如果找不到子字符串则返回NULL 下面是strstr函数的工作原理 首先strstr函数会在haystack字符串中搜索needle字符串的第一个字符 一旦找到了与needle的第一个字符匹配的字符strstr函数会继续比较haystack中的后续字符和needle中的字符直到找到一个不匹配的字符或者needle中的所有字符都匹配 如果找到了完全匹配的子字符串strstr函数会返回指向该子字符串的指针 如果在haystack中找不到子字符串或者needle是一个空字符串则strstr函数会返回NULL 1.1示例 int main() {char arr1[] abcdef;char arr2[] cd;printf(%s, strstr(arr1, arr2));return 0; } 如果找到了完全匹配的子字符串strstr函数会返回指向该子字符串的指针结果如下 1.2注意事项 strstr函数是区分大小写的如果要进行大小写不敏感的字符串比较可以使用其他函数  1.3模拟实现 char* my_strstr(const char* a1, const char* a2) {char* cp a1;char* str1 a1;char* str2;while (*cp){str1 cp;str2 a2;while (*str1*str2*str1 *str2){str1;str2;}if (*str2 \0){return cp;}cp;}return NULL; }int main() {char arr1[] abcdef;char arr2[] cd;printf(%s, my_strstr(arr1, arr2));return 0; } 2.strtok strtok是一个C标准库函数用于将一个字符串分割成多个子字符串。它的原型如下 char * strtok (char *str ,  const char *delim); 其中str是要分割的字符串delim是用作分隔符的字符串。函数返回一个指向分割后的第一个子字符串的指针如果没有更多的子字符串则返回NULL。 strtok函数使用一个静态变量来保存当前的分割位置因此在多次调用strtok时需要将原始字符串传递给第一次调用而后续的调用只需要传递NULL作为第一个参数 strtok函数的第一个参数不为 NULL 函数将找到str中第一个标记strtok函数将保存它在字符串中的位置strtok函数的第一个参数为 NULL 函数将在同一个字符串中被保存的位置开始查找下一个标记 2.1示例 int main() {char arr[] 123abc%ABC;char a[] %;printf(%s\n, strtok(arr, a));/*printf(%s\n, strtok(NULL, a));*/return 0; } 结果如下 int main() {char arr[] 123abc%ABC;char a[] %;printf(%s\n, strtok(arr, a));printf(%s\n, strtok(NULL, a));printf(%s\n, strtok(NULL, a));return 0; } 结果如下 充分利用性质可以写出这样的代码 int main() {char arr[] 123abc%ABC;char a[] %;/*printf(%s\n, strtok(arr, a));printf(%s\n, strtok(NULL, a));printf(%s\n, strtok(NULL, a));*/for (char* ret strtok(arr, a); ret ! NULL;ret strtok(NULL, a)){printf(%s\n, ret);}return 0; } 2.2注意事项 需要注意的是strtok函数会修改原始字符串将分隔符替换为NULL字符。如果需要保留原始字符串可以使用副本进行分割操作  二.错误信息报告 1.strerror() strerror是一个C标准库函数用于将错误码转换为对应的错误信息字符串。它的原型如下 char * strerror( int errnum ); 其中errnum是错误码。函数返回一个指向错误信息字符串的指针 errnum是一个整数类型的错误码通常用于表示函数调用或操作的结果状态errno是一个全局变量用于存储最近一次发生的错误码。当函数调用或操作失败时它们通常会设置errno为一个非零的错误码以指示错误的类型 1.1示例 输出1~10分别代表的错误信息 int main() {for (int i 1; i 10; i){printf(%s\n, strerror(i));}return 0; } 结果如下   1.2注意事项 strerror函数返回的指针指向的是一个静态分配的字符串因此在多线程环境下不是线程安全的 三.内存操作函数 1.memcpy() memcpy是一个标准C库函数用于将一段内存区域的数据复制到另一段内存区域。它的函数原型如下 void *memcpy(void *dest, const void *src, size_t n); 其中dest是目标内存区域的指针src是源内存区域的指针n是要复制的字节数。 memcpy函数将源内存区域的前n个字节复制到目标内存区域中。如果源和目标区域重叠memcpy函数的行为是未定义的。如果需要处理重叠区域的复制可以使用memmove函数(下面介绍) 这个函数在遇到 \0 的时候并不会停下来  1.1示例 int main() {char src[] Hello, world!;char dest[20];memcpy(dest, src, strlen(src) 1);printf(source string: %s\n, src);printf(copied string: %s\n, dest);return 0; } 结果如下 1.2注意事项 需要注意的是memcpy函数不会自动添加字符串结束符\0因此在复制字符串时需要将\0一起复制。在上面的示例中strlen(src) 1计算了源字符串的长度并将其加1以便复制\0  2.memmove memmove是一个标准C库函数用于将一段内存区域的数据复制到另一段内存区域与memcpy函数类似。但是memmove函数可以处理源和目标区域重叠的情况而memcpy函数则不能 memmove函数的函数原型如下 void *memmove(void *dest, const void *src, size_t n); 其中dest是目标内存区域的指针src是源内存区域的指针n是要复制的字节数。 memmove函数将源内存区域的前n个字节复制到目标内存区域中。如果源和目标区域重叠memmove函数会确保复制的结果是正确的即使源和目标区域重叠。因此memmove函数比memcpy函数更安全但通常也更慢 2.1示例 int main() {char str[] 123456;memmove(str,str3,3);printf(%s\n, str);return 0; } 结果如下 2.2注意事项 需要注意的是memmove函数和memcpy函数一样不会自动添加字符串结束符\0因此在复制字符串时需要将\0一起复制 3.memset memset是一个用于设置内存块内容的函数。它可以将指定的内存块中的每个字节都设置为特定的值。 memset函数的原型如下 void *memset(void *ptr, int value, size_t num); 参数说明 ptr指向要设置的内存块的指针。value要设置的值以整数形式提供。num要设置的字节数。 memset函数将ptr指向的内存块的前num个字节设置为value指定的值 3.1示例 int main() {char str[20] { 0 };memset(str, A, 10);printf(%s\n, str);return 0; } 结果如下 3.2注意事项 需要注意的是memset函数是按字节进行设置的因此对于非字符类型的数组需要将value参数转换为相应的字节表示 4.memcmp memcmp函数用于比较两个内存区域的内容是否相同其原型如下 int memcmp(const void *ptr1, const void *ptr2, size_t num); 参数说明 ptr1指向第一个内存区域的指针。ptr2指向第二个内存区域的指针。num要比较的字节数。 memcmp函数将ptr1指向的内存区域和ptr2指向的内存区域的前num个字节进行比较返回值如下 如果两个内存区域相同返回0。如果第一个内存区域小于第二个内存区域返回负整数。如果第一个内存区域大于第二个内存区域返回正整数 4.1示例 int main() {char str1[20] Hello, world!;char str2[20] Hello, world!;int result1 memcmp(str1, str2, strlen(str1));printf(result %d\n, result1);return 0; } 结果如下 4.2注意事项 memcmp函数比较的是字节因此对于非字符类型的数组比较的结果可能与预期不同  好了各位这次的内容就先整理到这里吧下次按照学习计划就打了结构体的部分知识内容啦
http://www.hkea.cn/news/14380407/

相关文章:

  • 自助建站吧wordpress调用函数
  • 在印度做外贸需要什么网站溧阳 招网站开发兼职
  • 网站开发费用如何入帐网络营销效果评估的作用有哪些
  • 网站这么做优化黄骅港汽车站客车时刻表
  • 东莞大朗网站建设商标图案设计创意
  • 制作网站要花多少钱如何国内10大猎头公司排名
  • 网站全部用根目录wordpress国内开发大神
  • 杭州萧山区专业做网站的公司重庆网站推广营销
  • 高端网站建设的要求游戏公司官方网站建设方案
  • 做seo比较好的网站想自己弄个app商城
  • 河南专业网站建设江西省建设职业培训学校网站
  • 做网站服务器还是虚拟空间好新吴区推荐做网站公司
  • 阿里云做网站买什么软件网站地址ip域名查询
  • 网站开发买什么书wordpress 菜单设置
  • 上海最专业的集团网站建设seo厂商
  • 定制做网站费用万网博通官网
  • 网站怎么做短信接口你注册过哪些网站
  • 高安建站公司南阳千牛网站建设
  • 东莞物流网站设计公司东莞房价走势图
  • xp系统没有lls组件可以做网站吗佛山优化网站排名收费
  • 网站建站的费用wordpress 增加中文字体
  • 常用网站搜索引擎做网站划算还是做app划算
  • 网站开发技术有教你免费开网店
  • 网站建设与维护中职深圳施工
  • 花瓣是模仿哪个网站外卖网站建设文档
  • 包装技术支持 东莞网站建设东营大众网
  • 给个网站谢谢了凡客精选app
  • 域名抢注网站源码google收录查询
  • 山西晋城网站建设天津建设监理协会网站
  • 河南省建设厅网站地址关键词优化的作用