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

详情页制作漳州seo网站快速排名

详情页制作,漳州seo网站快速排名,东莞娱乐场所开放通知,一个商城1. 字符串概述 字符串在开发中是非常重要数据载体#xff0c;常用于数据传递和存储#xff0c;具备较强的稳定性和安全性(可以进行加密操作)。针对于字符串操作涉及到拼接#xff0c;拷贝#xff0c;查询... 2. 字符串相关函数 补充知识点 字符串数据要求 在 C/C 中字符串…1. 字符串概述 字符串在开发中是非常重要数据载体常用于数据传递和存储具备较强的稳定性和安全性(可以进行加密操作)。针对于字符串操作涉及到拼接拷贝查询... 2. 字符串相关函数 补充知识点 字符串数据要求 在 C/C 中字符串数据【字符串常量/字符数组】必须结尾是一个 \0 #include stdio.h #include stdlib.h #include string.h ​ int main(int argc, char const *argv[]) {printf(strlen(\ABC\) : %ld\n, strlen(ABC)); // 3 有效字符个数printf(sizeof(\ABC\) : %ld\n, sizeof(ABC)); // 4 当前字符串占用内存字节数/*strlen(ABC) : 3sizeof(ABC) : 4sizeof 多出一个字节多出的内容是一个字符串标记 \0*/ ​/*当前 arr 算不算是一个字符数组?算当前 arr 算不算一个字符串数据?不算*/char arr[5] {A, B, C, D, E};char arr2[5] {A, B, C, D, E}; ​/*对于计算机而言字符串数据必须是 \0 结尾包括打印/数据占位符 %s 需要展示字符串数据要求到 \0 结束但是 arr 和 arr2 中不存在 \0且两个字符数组内存空间连续因为在调用过程中未发现 \0 所以打印 arr 内容展示的效果是 arr arr2 后续野值数据*/printf(arr %s\n, arr); ​/*当前 arr3 算不算是一个字符数组?算当前 arr3 算不算一个字符串数据?算*/char arr3[5] {A, B, C, D, \0}; ​return 0; } 2.1 strcat 和 strncat char *strcat(char *dest, const char *src) 函数功能: 将 src 对应的字符串内容拼接到 dest 对应的字符串数据空间中要求 dest 必须有足够的内存空间存储目标 src 字符串数据 参数解释: dest : 通常情况下是一个字符数组形式可以是静态数组也可以是通过动态内存(malloc calloc realloc)分配得到的连续存储字符串数据内存空间。要求必须有足够的预留内存空间存储目标 src 数据, 同时要求保证可以满足字符串数据要求 src提供给当前函数作为拼接到 dest 末尾的字符串数据可以是字符串常量也可以是字符数组 返回值解释: 返回值内容是当前参数 dest 地址。 char *strncat(char *dest, const char *src, size_t n) 函数功能: 将 src 对应的字符串内容前 n 个字符拼接到 dest 对应的字符串数据空间中要求 dest 必须有足够的内存空间存储目标 src 字符串数据 参数解释: dest : 通常情况下是一个字符数组形式可以是静态数组也可以是通过动态内存(malloc calloc realloc)分配得到的连续存储字符串数据内存空间。要求必须有足够的预留内存空间存储目标 src 数据, 同时要求保证可以满足字符串数据要求 src提供给当前函数作为拼接到 dest 末尾的字符串数据可以是字符串常量也可以是字符数组 n: 限制当前 src 中前 n 个字符拼接到目标 dest 之后 返回值解释: 返回值内容是当前参数 dest 地址。 #include stdio.h #include stdlib.h #include string.h ​ /* char *strcat(char *dest, const char *src); char *strncat(char *dest, const char *src, size_t n); */ ​ int main(int argc, char const *argv[]) {/*使用字符串常量给予字符数组进行赋值操作当前 arr 字符串数据中的数据存储情况为{A, B, C, D, \0, \0, \0, \0, \0, \0} ​当前字符数组中有 6 个 \0 存在如果需要保证当前字符数组数据依然满足字符串要求有且最多可以填充的字符个数为 5 个*/char arr[10] ABCD; ​/*strcat 操作需要明确的知晓当前操作过程中 src 对应字符串数据是否满足当前 dest 剩余内存空间情况。防止出现越界行为。strcat(arr, ABCDEFG);   // 1 不行超出范围strcat(arr, 12345);     // 2 可以strcat(arr, 8888);     // 3 可以strcat(arr, 987654321); // 4 不行超出范围*/ ​strcat(arr, 123);printf(arr %s\n, arr); ​strncat(arr, ABCDEFG, 2);printf(arr %s\n, arr);return 0; } 2.2 strcpy 和 strncpy char *strcpy(char *dest, const char *src) 函数功能: 将 src 对应的字符串内容复制到 dest 指向的内存空间中要求 dest 必须有足够的内存空间保证字符串数据完整 tips : strcpy 会将 src 对应的完整字符串数据拷贝到 dest 中同时会将 \0 同时提供给 dest 参数解释: dest : 通常情况下是一个字符数组形式可以是静态数组也可以是通过动态内存(malloc calloc realloc)分配得到的连续存储字符串数据内存空间。要求必须有足够的预留内存空间存储目标 src 数据, 同时要求保证可以满足字符串数据要求 src提供给当前函数将 src 对应字符串数据拷贝到 dest 对应内存空间中 返回值解释: 返回值内容是当前参数 dest 地址。 char *strncpy(char *dest, const char *src, size_t n) 函数功能: 将 src 对应的字符串内容前 n 个字符复制到 dest 指向的内存空间中要求 dest 必须有足够的内存空间保证字符串数据完整 tips : strncpy 仅将限制以内的字符拷贝提供给当前 dest 不会自行补充 \0 参数解释: dest : 通常情况下是一个字符数组形式可以是静态数组也可以是通过动态内存(malloc calloc realloc)分配得到的连续存储字符串数据内存空间。要求必须有足够的预留内存空间存储目标 src 数据, 同时要求保证可以满足字符串数据要求 src提供给当前函数将 src 对应字符串数据拷贝到 dest 对应内存空间中 n: 将 src 前 n 个字符拷贝到目标 dest 空间中同时保证字符串数据完整 返回值解释: 返回值内容是当前参数 dest 地址。 #include stdio.h #include stdlib.h #include string.h ​ /* char *strcpy(char *dest, const char *src) char *strncpy(char *dest, const char *src, size_t n) */ ​ int main(int argc, char const *argv[]) {/*使用字符串常量给予字符数组进行赋值操作当前 arr 字符串数据中的数据存储情况为{1, 2, 3, 4, 5, 6, 7, \0, \0, \0}*/char arr[10] 1234567; ​strcpy(arr, ABC);/*以上 strcpy 执行完毕arr 中数据存储情况为{A, B, C, \0, 5, 6, 7, \0, \0, \0}*/ ​printf(arr %s\n, arr);       // ABC ABC4567printf(arr[5] %c\n, arr[5]); // \0 6printf(arr[4] %c\n, arr[4]); // \0 5arr[3] 1; ​printf(arr %s\n, arr); // ABC ABC4567/*以上操作完成arr 中存储的数据情况{A, B, C, 1, 5, 6, 7, \0, \0, \0}*/strncpy(arr, 666, 2);printf(arr %s\n, arr); // 66 66C1567arr[2] \0; ​char arr1[3] {C, D, E}; ​char *str1 (char *)calloc(10, sizeof(char));str1[0] 1;str1[1] 2;str1[2] 3;strcpy(str1, arr1);printf(str1 %s\n, str1); // ​free(str1); ​return 0; } 2.3 strcmp 和 strncmp int strncmp(const char *str1, const char *str2, size_t n); 函数功能: 字符串比较函数将 str1 和 str2 对应的字符串数据前 n 个字符进行比较如果一致返回 0如果不一致返回结果不为 0 参数解释: str1: 用户提供的字符串数据 str2: 用户提供的字符串数据 n : 要求比较 str1 和 str2 前 n 个字符是否一致 返回值解释: 如果两个字符串前 n 个字符串一致返回 0否则返回值非 0 int strcmp(const char *str1, const char *str2); 函数功能: 字符串比较函数将 str1 和 str2 对应的字符串数据进行逐一比较如果一致返回 0如果不一致返回结果不为 0 参数解释: str1: 用户提供的字符串数据 str2: 用户提供的字符串数据 返回值解释: 如果两个字符串前一致返回 0否则返回值非 0 2.4 strstr 和 strchr char *strchr(const char *str, int c) 函数功能: 在当前 str 字符串中找到目标字符 c 如果存在返回 c 第一次出现的地址如果不存在返回 NULL tips: 参数 c 是一个 int 数据类型但是实际上提供给函数使用的有且只有整个 int 内存低 8 位相当于有且只有一个字节数据有效 参数解释: str目标搜索字符数据的字符串数据可以是字符串常量也可以是满足字符串要求的字符数组 c: 目标搜索的字符数据 返回值解释: 如果找到目标字符返回字符在当前字符串中的地址如果未找到返回 NULL char *strstr(const char *haystack, const char *needle) 函数功能: 在当前 haystack 字符串中找到目标字符串 needle 如果存在返回 needle 第一次出现的地址如果不存在返回 NULL 参数解释: str目标搜索字符数据的字符串数据可以是字符串常量也可以是满足字符串要求的字符数组 c: 目标搜索的字符数据 返回值解释: 如果找到目标字符返回字符在当前字符串中的地址如果未找到返回 NULL #include stdio.h #include stdlib.h #include string.h ​ /* char *strchr(const char *str, int c) char *strstr(const char *haystack, const char *needle) */ ​ int main(int argc, char const *argv[]) {char *str1 ABCDEFG; ​if (strchr(str1, a)){printf(目标字符存在!\n);}else{printf(Source Not Found! 404!\n);} ​if (strstr(str1, CB)){printf(目标字符串存在!\n);}else{printf(Source Not Found! 404!\n);} ​/* C/C 中的空字符串当前字符串中有且只有一个 \0*/char arr[10] ; ​strcpy(arr, strchr(str1, C));printf(arr %s\n, arr); ​return 0; } 3. 内存操作相关函数 以下函数是在 string.h 头文件中针对于内存进行操作的函数关注点是内存中的二进制数据情况不需要考虑外部的数据类型。所有函数相关操作都是以字节为单位。 3.1 memchr void *memchr(const void *p, int b, size_t n) 函数功能: 在 p 指向内存空间中前 n 个字节搜索指定字节 b 对应数据是否存在如果存在返回所在内存地址位置如果不存在返回 NULL 参数解释: p: 目标内存空间首地址可以是静态内存地址也可以是动态申请的内存地址 b: 参数类型为 int 类型实际提供给当前函数的有效数据是当前 int 类型的低 8 位一个字节数据。 n: 表示搜索范围的内存字节数 返回值解释: 如果目标内存数据存在返回对应地址否则返回 NULL #include stdio.h #include stdlib.h #include string.h ​ /* 当前操作考虑的内容是内存中的数据情况不需要考虑内存二进制对外的 数据类型和数据形式。 参数 int b 在函数中要求的参数为 int 类型但是在函数实际运行过程 中有效数据仅是当前 int 类型数据的低 8 位参与代码运行。 例如: b 对应的实际参数为 321 函数实际解析参与代码运行的数据为 65 void *memchr(const void *p, int b, size_t n) */ ​ int main(int argc, char const *argv[]) {int arr[5] {321, 833, 1857, 3905, 8001}; ​if (memchr(arr, 65, 20)) // {printf(目标存在!\n); }else{printf(Source Not Found!\n);} ​if (memchr(arr, 15, 20)) // {printf(目标存在!\n);}else{printf(Source Not Found!\n);} ​printf(memchr(arr, 65, 20) : %p\n, memchr(arr, 65, 20));   // 0x7fff3a17d3b0printf(memchr(arr, 256, 20) : %p\n, memchr(arr, 256, 20)); // 0x7fff3a17d3b2printf(memchr(arr, 15, 20) : %p\n, memchr(arr, 15, 20));   // 0x7fff3a17d3bd ​return 0; } 3.2 memcmp int memcmp(const void *p1, const void *p2, size_t n) 函数功能: 比较参数 p1 和 p2 指向内存空间中前 n 个字节内容是否一致。如果一致返回 0如果不一致返回其他 参数解释: p1: 用户提供进行比较操作的内存空间首地址 p2: 用户提供进行比较操作的内存空间首地址 n: 比较限制的前 n 个字节 返回值解释: 如果两个内存对应的数据完全一致返回 0否则返回其他整数 #include stdio.h #include stdlib.h #include string.h ​ /* int memcmp(const void *p1, const void *p2, size_t n); */ ​ int main(int argc, char const *argv[]) {int num 1145258561; ​/*当前 num 是一个 int 类型对应内存为0100 01000100 00110100 00100100 0001字符串 ABCD 二进制内容为0000 0000 \00100 0100 D0100 0011 C0100 0010 B0100 0001 A ​将 num 和 字符串 ABCD 对应内存的前 4 个字节进行比较1145258561       ABCD0100 0100   0100 0100 D0100 0011   0100 0011 C0100 0010   0100 0010 B0100 0001   0100 0001 A*/int ret memcmp(num, ABCD, 4);printf(ret %d\n, ret); // 0return 0; } 3.3 memcpy 和 memmove void *memcpy(void *dest, const void *src, size_t n) void *memmove(void *dest, const void *src, size_t n) 函数功能: 以上两个函数是将 src 对应内存中的 n 个字节数据拷贝到 dest 对应内存要求 dest 对应内存必须具备足够的数据空间 tips : memcpy 性能好但是安全性较低memmove 性能较低安全性好如果涉及到【同源地址】拷贝操作请使用 memmove tips: 【同源地址】dest 和 src 来自于同一块连续内存空间例如同一个数组 arr[2] arr[5]同一个动态申请内存空间 参数解释: dest : 目标存储数据的内存空间首地址 src提供拷贝源数据的首地址 n: 拷贝目标对应的字节个数 返回值解释: 返回值内容是当前参数 dest 地址。 #include stdio.h #include stdlib.h #include string.h ​ /* void *memcpy(void *dest, const void *src, size_t n) void *memmove(void *dest, const void *src, size_t n) */ ​ int main(int argc, char const *argv[]) {char arr[10] ABCDEFG12; ​printf(arr %s\n, arr); ​memmove(arr[3], arr[1], 5);printf(arr %s\n, arr); ​memcpy(arr[3], arr[1], 5);printf(arr %s\n, arr); ​return 0; } 3.4 memset void *memset(void *p, int b, size_t n) 函数功能: 将用户提供的指针 p 对应内存的 n 个字节全部赋值为 b 参数解释: p: 用户提供内存的空间首地址 b: 参数类型为 int 类型实际提供给当前函数的有效数据是当前 int 类型的低 8 位一个字节数据。 n 覆盖操作对应的字节个数 返回值解释: 返回值内容是当前参数 p 地址。 #include stdio.h #include stdlib.h #include string.h ​ /* void *memset(void *p, int b, size_t n) */ int main(int argc, char const *argv[]) {char arr[10]; ​memset(arr, 321, 10); ​for (size_t i 0; i 10; i){printf(%c\n, arr[i]);}printf(------------------------------\n); ​int *p1 (int *)malloc(10 * sizeof(int));memset(p1, 65, sizeof(int) * 10);// memset(p1, 0, sizeof(int) * 10); 正常操作 ​for (size_t i 0; i 10; i){printf(%d\n, p1[i]);} ​free(p1); ​return 0; }
http://www.ho-use.cn/article/10811967.html

相关文章:

  • 眉山建网站wordpress会员是主机么
  • 百度做的网站迁移宝安网站设计哪家最好
  • 商务局网站群建设方案大型网站要多少钱
  • 网站首页缩略图 seo北京网页制作方案
  • wordpress怎样修改备案号那种登录才能查看的网站怎么做优化
  • 玮科网站建设推广链接赚钱
  • 海口市网站开发丽水网站建设报价
  • 网站建设制作要学什么普陀网站建设哪家便宜
  • 免费设计网站平台网站做代理商
  • 怎样收录网站网站做什么内容
  • 茂名专业做网站公司商派商城网站建设方案
  • 哪些群体对网站开发有需求辽宁智能建站系统价格
  • 知春路网站建设公司修改wordpress用户名密码忘记
  • 网站服务器基本要素百度企业推广怎么收费
  • 汕头网站开发武山县建设局网站
  • wordpress建两个网站响应式布局网站模板
  • 给网站做游戏视频怎么赚钱兼职招聘信息最新招聘
  • 给别人做设计的网站wordpress参数
  • 域名注册1元怎么建设seo自己网站
  • 中国建设行业峰会网站新赣州房产网
  • 山东中恒建设集团网站做电影网站都需要什么手续
  • 编辑网站设计培训班学费一般多少
  • 网站建设行业的趋势郑州网站权重
  • 广东网站备案电话号码哪里可以学做网站
  • 用wordpress建一个网站怎么出售友情链接
  • 片网站无法显示app开发的基本步骤
  • 湖南城乡建设厅网站如何本地搭建自己的网站
  • 网站开发技术文档格式网站不备案怎么回事
  • 互联网网站运营推广网页特效代码
  • 商业网站策划书范文营销策划案ppt优秀案例