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

个人网站如何做即时支付中国电子第三建设公司官网

个人网站如何做即时支付,中国电子第三建设公司官网,百度速页建站,网站开发方案ppt文章目录 前言1.求字符串长度1.1 字符串长度函数#xff1a;strlen模拟实现 2.长度不受限制的字符串函数2.1 字符串拷贝函数#xff1a;strcpy模拟实现 2.2 字符串连接函数#xff1a;strcat模拟实现 2.3 字符串比较函数#xff1a;strcmp模拟实现 3.长度受限制的字符串函数… 文章目录 前言1.求字符串长度1.1 字符串长度函数strlen模拟实现 2.长度不受限制的字符串函数2.1 字符串拷贝函数strcpy模拟实现 2.2 字符串连接函数strcat模拟实现 2.3 字符串比较函数strcmp模拟实现 3.长度受限制的字符串函数3.1strncpy3.2strncat3.3strncmp 4.字符串查找4.1字符串查找函数strstr模拟实现 4.2字符串分割函数strtok 5.错误信息报告5.1错误信息报告函数strerror 6.内存操作函数6.1 内存操作函数memcpy 和 memmovememcpy模拟实现memmove模拟实现 6.2 内存操作函数memset6.3 内存比较函数memcmp 前言 在C语言中字符和字符串是常用的数据类型。然而C语言并没有专门的字符串类型所有字符串都是通过字符数组或字符串常量来表示。为了处理这些字符串C语言提供了许多强大的库函数。本文将详细介绍这些常用的字符和字符串处理函数以及它们的使用方法和注意事项。 1.求字符串长度 1.1 字符串长度函数strlen strlen 函数用来计算字符串的长度。它返回字符串中不包含终止字符 \0 的字符数量。 size_t strlen(const char *str);使用示例 #include stdio.h #include string.hint main() {const char *str Hello, world!;printf(Length of the string: %zu\n, strlen(str)); // 输出13return 0; }模拟实现 #includestdio.h #includeassert.h //#includestring.hint my_strlen(const char* str) {assert(str);int count 0;while (*str) {count;}return count; } int main() {char arr[] abcdef;int ret my_strlen(arr);printf(%d, ret);return 0; }2.长度不受限制的字符串函数 2.1 字符串拷贝函数strcpy strcpy 函数将源字符串拷贝到目标字符串包括终止符 \0。 char *strcpy(char *destination, const char *source);注意事项 源字符串必须以 \0 结束。目标空间必须足够大以容纳源字符串。 使用示例 #include stdio.h #include string.hint main() {char dest[20];strcpy(dest, Hello);printf(Destination string: %s\n, dest); // 输出Helloreturn 0; }模拟实现 #includestdio.h //#includestring.h #includeassert.hvoid my_strcpy(char* dest,const char* source) {assert(dest source);while (*dest*source) {;} }int main() {char arr1[] abcdefg;char arr2[] hijklmn;my_strcpy(arr1, arr2);printf(%s, arr1);return 0; }2.2 字符串连接函数strcat strcat 函数将源字符串追加到目标字符串的末尾。它会覆盖目标字符串末尾的 \0并将新的字符串结束符 \0 放置在新字符串的末尾。 char *strcat(char *destination, const char *source);使用示例 #include stdio.h #include string.hint main() {char dest[20] Hello, ;strcat(dest, world!);printf(Concatenated string: %s\n, dest); // 输出Hello, world!return 0; }模拟实现 #includestdio.h //#includestring.h #includeassert.hchar* my_strcat(char* dest, const char* source) {char* ret dest;while (*dest) {dest;}while (*dest *source) {;}return ret; }int main() {char arr1[20] abcdf;char arr2[10] ghijk;my_strcat(arr1, arr2);printf(%s, arr1);return 0; }2.3 字符串比较函数strcmp strcmp 函数比较两个字符串的大小。它返回一个整数根据两个字符串的字典顺序进行比较。 int strcmp(const char *str1, const char *str2);如果 str1 大于 str2返回大于 0 的值。如果 str1 等于 str2返回 0。如果 str1 小于 str2返回小于 0 的值。 使用示例 #include stdio.h #include string.hint main() {const char *str1 abc;const char *str2 abd;int result strcmp(str1, str2);if (result 0) {printf(str1 is less than str2\n);} else if (result 0) {printf(str1 is greater than str2\n);} else {printf(str1 is equal to str2\n);}return 0; }模拟实现 #includestdio.h //#includestring.h #includeassert.hint my_strcmp(const char* str1,const char* str2) {assert(str1 str2);while (*str1 *str2) {str1;str2;}return *str1 - *str2; }int main() {char arr1[] abcd;char arr2[] abcf;int ret my_strcmp(arr1, arr2);if (ret 0){printf(\n);}else if (ret 0) {printf(\n);}elseprintf(\n);return 0; }3.长度受限制的字符串函数 3.1strncpy char * strncpy ( char * destination, const char * source, size_t num );拷贝num个字符从源字符串到目标空间。如果源字符串的长度小于num则拷贝完源字符串之后在目标的后边追加0直到num个。 3.2strncat char * strncat ( char * destination, const char * source, size_t num );在目标字符串结尾追加源字符串前num个字符 3.3strncmp int strncmp ( const char * str1, const char * str2, size_t num );比较到出现另个字符不一样或者一个字符串结束或者num个字符全部比较完。 4.字符串查找 4.1字符串查找函数strstr strstr 函数查找一个字符串在另一个字符串中首次出现的位置。如果找到则返回该位置的指针如果未找到则返回 NULL。 char *strstr(const char *haystack, const char *needle);使用示例 #include stdio.h #include string.hint main() {const char *str This is a simple string;const char *substr simple;char *result strstr(str, substr);if (result ! NULL) {printf(Found substring: %s\n, result); // 输出simple string}return 0; }模拟实现 #includestdio.h //#includestring.h #includeassert.hchar* my_strstr(const char* str1, const char* str2) {assert(str1 str2);if (*str2 \0) {return (char*)str1;}const char* s1 NULL;const char* s2 NULL;const char* cp str1;while (cp) {s1 cp;s2 str2;while (*s1 !\0 *s2 ! \0 * s1 *s2) {s1;s2;}if (*s2 \0)return (char*)cp;cp;}return NULL; }int main() {char* p1 abbbcdef;char* p2 ba;char* ret my_strstr(p1, p2);if (ret NULL) {printf(Ҳ\n);}else {printf(%s, ret);}return 0; }4.2字符串分割函数strtok strtok 函数将字符串分割成多个标记每次调用 strtok 返回下一个标记。当没有更多标记时返回 NULL。 char *strtok(char *str, const char *delim);注意事项 strtok 会修改原始字符串因此一般会拷贝字符串后再进行分割。每次调用 strtok 返回字符串中的下一个标记后续调用需要将第一个参数设为 NULL。 使用示例 #include stdio.h #include string.hint main() {char str[] Hello, world! C programming;char *token strtok(str, ,!);while (token ! NULL) {printf(Token: %s\n, token);token strtok(NULL, ,!);}return 0; }5.错误信息报告 5.1错误信息报告函数strerror strerror 函数根据错误码返回相应的错误信息。 char *strerror(int errnum);使用示例 #include stdio.h #include string.h #include errno.hint main() {FILE *file fopen(nonexistent.txt, r);if (file NULL) {printf(Error: %s\n, strerror(errno));}return 0; }6.内存操作函数 6.1 内存操作函数memcpy 和 memmove memcpy 用于从源内存区域复制指定字节的数据到目标内存区域。memmove 与 memcpy 类似但它处理内存重叠的情况。 void *memcpy(void *dest, const void *src, size_t n); void *memmove(void *dest, const void *src, size_t n);使用示例 #include stdio.h #include string.hint main() {char src[] This is a test.;char dest[20];memcpy(dest, src, strlen(src) 1);printf(Copied string: %s\n, dest);return 0; }memcpy模拟实现 #includestdio.h #includestring.h #includeassert.hvoid* my_memcpy(void* dest, const void* source, size_t num) {assert(dest source);void* ret dest;while (num--){*(char*)dest *(char*)source;dest (char*)dest 1;source (char*)source 1;}return ret; }void test1() {int arr1[10] { 1,2,3,4,5,6,7,8,9,10 };int arr2[10] { 0 };my_memcpy(arr1, arr2, 20); }int main() {test1();return 0; }memmove模拟实现 #includestdio.h #includestring.h #includeassert.hvoid* my_memmove(void* dest, const void* source, size_t num) {assert(dest source);void* ret dest;if (dest source) {while (num--) {*(char*)dest *(char*)source;dest (char*)dest 1;source (char*)source 1;}}else {while (num--) {*((char*)dest num) *((char*)source num);}}return ret; }void test1() {int arr[10] {1,2,3,4,5,6,7,8,9,10};my_memmove(arr3, arr, 20); }int main() {test1();//test2();return 0; }6.2 内存操作函数memset memset 函数用于将一块内存区域的所有字节设置为指定的值。通常用于初始化内存或将内存区域清零。 void *memset(void *s, int c, size_t n);s指向内存区域的指针。c要设置的值以无符号字符形式。n要设置的字节数。 注意事项 memset 函数将指定的字节值填充到内存区域中可以用于初始化数组或结构体的值。由于是按字节处理因此它适用于任何类型的内存块。 使用示例 #include stdio.h #include string.hint main() {char str[20];memset(str, A, sizeof(str) - 1); // 将前19个字节设置为Astr[19] \0; // 确保字符串以\0结束printf(The string is: %s\n, str); // 输出AAAAAAAAAAAAAAAAAAAreturn 0; }在上面的例子中memset 将数组 str 的前 19 个字节设置为字符 A并在最后设置为字符串的终止符 \0确保它成为一个有效的字符串。 应用场景 初始化数组或结构体在动态分配内存或创建数据结构时使用 memset 可以方便地初始化内存将内存区域填充为特定的值。例如常见的做法是使用 memset 来清零结构体或数组中的内容。 清空敏感数据当处理涉及敏感信息如密码、密钥的程序时使用 memset 可以确保这些数据在使用后被立即清除以减少安全隐患。 内存清零在程序需要清除缓存或重置数据时memset 可以帮助快速设置内存区域为零。 6.3 内存比较函数memcmp memcmp 函数用于比较两个内存区域的内容。它按字节逐一比较两个内存块并根据比较结果返回一个整数值。 int memcmp(const void *ptr1, const void *ptr2, size_t num);ptr1指向第一个内存区域的指针。ptr2指向第二个内存区域的指针。num要比较的字节数。 返回值 如果两个内存区域的内容完全相同则返回 0。如果 ptr1 指向的内存块大于 ptr2则返回大于 0 的值。如果 ptr1 指向的内存块小于 ptr2则返回小于 0 的值。 使用示例 #include stdio.h #include string.hint main() {char buffer1[] DWgaOtP12df0;char buffer2[] DWGAOTP12DF0;int result memcmp(buffer1, buffer2, sizeof(buffer1));if (result 0) {printf(%s is greater than %s.\n, buffer1, buffer2);} else if (result 0) {printf(%s is less than %s.\n, buffer1, buffer2);} else {printf(%s is the same as %s.\n, buffer1, buffer2);}return 0; }输出 DWgaOtP12df0 is greater than DWGAOTP12DF0.在这个示例中memcmp 比较了两个字符数组 buffer1 和 buffer2 的内容。由于在比较过程中DWgaOtP12df0 的字节值大于 DWGAOTP12DF0所以返回的值大于 0。 注意事项 按字节比较memcmp 是按字节逐一比较内存区域的内容因此它不会考虑数据的类型。如果要比较更复杂的数据类型例如结构体需要保证结构体成员的字节表示没有问题。内存重叠问题与 memcpy 不同memcmp 不会处理内存重叠的情况它只比较内存的内容而不考虑是否存在重叠。因此在使用 memcmp 时要确保比较的内存区域不会重叠。 应用场景 内存区域比较memcmp 适用于需要比较两个内存区域是否相等的场景例如在数据校验或加密算法中经常使用它来比较数据块的内容。查找差异当需要查找两个内存块中不同的位置时可以使用 memcmp 来快速发现差异。
http://www.w-s-a.com/news/609902/

相关文章:

  • 深圳罗湖网站设计公司价格制作网站的公司办什么营业执照
  • 长清网站建设价格群辉NAS搭建wordpress
  • 变更股东怎样在工商网站做公示网站建设和网站优化哪个更重要
  • 西安手机网站python网站开发效率
  • 深圳建站的公司羽毛球赛事2022直播
  • j2ee网站开发搜索推广的流程
  • 网站目录结构图虚拟主机如何安装WordPress
  • 信产部网站备案保定软件开发网站制作
  • 东莞网站设计定做东莞网站建设最牛
  • 网站开发的软件天猫的网站导航怎么做的
  • 做链接哪个网站好网站建设平台方案设计
  • 资质升级业绩备案在哪个网站做网站建设方案费用预算
  • 做网站找哪个平台好wordpress 3.9 性能
  • 大兴模版网站建设公司企业网站备案案例
  • h5建站是什么wordpress客户端 接口
  • 济南自适应网站建设制作软件下载
  • 望都网站建设抖音广告投放收费标准
  • 网站制作软件排行榜上海市网站建设公司58
  • 什么是网站风格中国工商网企业查询官网
  • 专业建设专题网站wordpress lnmp wamp
  • 环保网站 下载页网站
  • 开源小程序模板江门关键词优化排名
  • 网站开发 知乎房地产型网站建设
  • 买完域名网站怎么设计wordpress 纯代码
  • 公司网站怎么做百度竞价宁波网络公司哪家好
  • 河西网站建设制作微信分销系统多层
  • 网站制作完成后应进入什么阶段石家庄网站建设找哪家好
  • 南通外贸网站推广自在源码网官网
  • 个人网站模板html下载餐饮vi设计案例欣赏
  • 高端网站建设wanghess网站开发售后服务承诺