news 2026/6/10 21:54:39

Day28~实现strlen、strcpy、strncpy、strcat、strncat

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Day28~实现strlen、strcpy、strncpy、strcat、strncat

实现strlen、strcpy、strncpy、strcat、strncat

#include <stdio.h> size_t my_strlen(const char *src) { size_t len = 0; while (*src != '\0') { len++; src++; } return len; } char *my_strcpy(char *dest, const char *src) { if (dest == NULL || src == NULL) // 判断输入的字符是否为空 { return NULL; // 如果为空,就返回空 } char *temp = dest; // 将dest的地址赋值给一个临时变量 while (*src != '\0') // 遍历要拷贝的字符 { *temp = *src; // 将src的值赋给temp src++; // src地址后移 temp++; // temp地址后移 } *temp = '\0'; // 最后一位为\0 return dest; // 返回dest } char *my_strncpy(char *dest, const char *src, size_t n) { if (dest == NULL || src == NULL) { return NULL; } char *temp = dest; size_t i; for (i = 0; (i < n) && (*src != '\0'); i++) { *temp = *src; src++; temp++; } for (; i < n; i++) { *temp = '\0'; } return dest; } char *my_strcat(char *dest, const char *src) { if (dest == NULL || src == NULL) { return NULL; } char *temp = dest; while (*temp != '\0') { temp++; } while (*src != '\0') { *temp = *src; temp++; src++; } *temp = '\0'; return dest; } char *my_strncat(char *dest, const char *src, size_t n) { if (dest == NULL || src == NULL) { return NULL; } char *temp = dest; while (*temp != '\0') { temp++; } size_t i; for (i = 0; (i < n) && (*src != '\0'); i++) { *temp = *src; src++; temp++; } for (; i < n; i++) { *temp = '\0'; } return dest; } int main() { char dest[100] = "Hello World"; char src[100] = "Hello World"; // char *result1 = my_strcpy(dest, src); // char *result2 = my_strncpy(dest, src, 3); // size_t result = my_strlen(src); // char *result3 = my_strcat(dest, src); char *result4 = my_strncat(dest, src, 3); // printf("%s\n", result1); // printf("%s\n", result2); // printf("%ld\n", result); // printf("%s\n", result3); printf("%s\n", result4); return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 13:17:34

终极指南:快速掌握Scarab空洞骑士模组管理神器

终极指南&#xff1a;快速掌握Scarab空洞骑士模组管理神器 【免费下载链接】Scarab An installer for Hollow Knight mods written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab 想要轻松管理几十个空洞骑士模组却不知从何下手&#xff1f;Scarab作…

作者头像 李华
网站建设 2026/6/10 18:37:24

【YOLO11-MM 多模态目标检测】MSAA多尺度特征融合、轻量而且高效、抛弃Concat普通融合

摘要 本文提出了一种基于YOLO11-MM框架的多模态目标检测改进方法&#xff0c;通过引入多尺度注意力聚合模块(MSAA)实现红外与可见光特征的高效融合。MSAA模块采用多尺度卷积和空间/通道双注意力机制&#xff0c;有效提升了模型在复杂场景下的检测性能。实验在FLIR、M3FD和LLVI…

作者头像 李华
网站建设 2026/6/10 13:44:18

百度网盘高速下载工具使用手册:告别蜗牛速度的秘诀

还在为百度网盘那令人抓狂的下载速度而烦恼吗&#xff1f;想象一下&#xff0c;原本需要几个小时下载的文件&#xff0c;现在只需几分钟就能完成&#xff01;今天我要分享的这款神器&#xff0c;正是为解决这一痛点而生——百度网盘高速下载工具&#xff0c;让你的下载体验瞬间…

作者头像 李华
网站建设 2026/6/9 18:36:54

Flutter 响应式设计基础

欢迎大家加入开源鸿蒙跨平台开发者社区&#xff0c;一起共建开源鸿蒙跨平台生态。 ###Flutter 响应式设计基础 Flutter 响应式设计的核心在于根据屏幕尺寸、方向或设备类型动态调整布局。这种设计方法需要考虑以下几个方面&#xff1a; 设备信息获取&#xff1a;使用 MediaQu…

作者头像 李华
网站建设 2026/6/10 15:38:19

Kimi-VL横空出世:开源多模态模型的技术革命与行业突破

Kimi-VL横空出世&#xff1a;开源多模态模型的技术革命与行业突破 【免费下载链接】Kimi-VL-A3B-Instruct 我们推出Kimi-VL——一个高效的开源混合专家&#xff08;MoE&#xff09;视觉语言模型&#xff08;VLM&#xff09;&#xff0c;具备先进的多模态推理能力、长上下文理解…

作者头像 李华
网站建设 2026/6/10 17:57:12

downkyi哔哩下载姬:获取B站8K超高清视频的完整指南

downkyi哔哩下载姬&#xff1a;获取B站8K超高清视频的完整指南 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff…

作者头像 李华