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

C函数实现strcopy strcat strcmp strstr

strcopy函数
char *strcpy( char *strDestination, const char *strSource );

 复制字符串函数的实现

char* my_strcopy(char* dest, char* src)
{char* ret = dest;while (*src){*dest++ = *src++;}*dest = *src;return ret;
}int main() {char arr[] = "abcdef";char arr1[20] = { 20 };my_strcopy(arr1, arr);printf("%s", arr1);return 0;
}
 strcat函数

合并字符串

char *strcat( char *strDestination, const char *strSource );
char my_strcat(char* dest, const char* src)
{char ret=dest;while (*dest!='\0'){dest++;}while (*dest++=*src++){;}return ret;
}
int main()
{char arr[30] = "hellow";char arr1[] = "world";my_strcat(arr, arr1);printf("%s ", arr);return 0;
}
 strcmp函数

比较字符串

int strcmp( const char *string1, const char *string2 );

 

char my_strcmp(char* str1, char* str2)
{while (*str1==*str2){if (*str1 == '\0')return 0;str1++;str2++;
}return (*str1 - *str2);
}
int main()
{char a[] = "abcd";char b[] = "abcd";int ret =my_strcmp(a, b);if (ret<0){printf("<");}else if (ret > 0){printf(">");}else{printf("==");}return 0;
}
strstr函数

在a里面查找b

char *strstr( const char *string, const char *strCharSet );
char* my_strstr(const char* str1, const char* str2)
{const char* s1 = str1;const char* s2 = str2;const char* p = str1;while (*p){s1=p;s2 = str2;while (*s1 != '\0' && *s2 != '\0' && *s1 == *s2){s1++;s2++;}if (*s2=='\0'){return (char*)p;}p++;}return NULL;
}
int main()
{char arr[] = "abcbbc";char arr1[] = "bbc";char* ret = my_strstr(arr, arr1);if (ret==NULL){printf("不存在\n");}else{printf("%s", ret);}return 0;
}

http://www.dtcms.com/a/284293.html

相关文章:

  • javax.servlet.http.HttpServletResponse;API导入报错解决方案
  • Kotlin集合与空值
  • 产品经理如何绘制流程图
  • Linux中的数据库操作基础
  • SpringMVC 执行原理
  • 79、【OS】【Nuttx】【启动】caller-saved 和 callee-saved 示例:r7 寄存器
  • Modbus
  • PyCharm2024安装包社区版和专业版
  • TESOLLO五指灵巧手遥操作解决方案
  • 使用 .NET Core 的原始 WebSocket
  • Spring整合MyBatis详解
  • 概率论与数理统计(四)
  • WCDB soci 查询语句
  • 缓存雪崩、缓存穿透,缓存击穿
  • 使用IntelliJ IDEA和Maven搭建SpringBoot集成Fastjson项目
  • 【git】使用教程
  • CommonJS和ES模块区别对比
  • API开发提速新方案:SmartBear API Hub与ReadyAPI虚拟化整合实践
  • ESP8266服务器建立TCP连接失败AT+CIPSTART=“TCP“,“192.168.124.1“,8080 ERROR CLOSED
  • JAVA后端开发——success(data) vs toAjax(rows): 何时用
  • 美拍sig逆向
  • 神经网络:模拟人脑的 AI 信息处理系统
  • 代码随想录打卡第十二天
  • Unity | AmplifyShaderEditor插件基础(第十集:噪声的种类+火焰制作-下)
  • 透过结构看时间——若思考清洗则表达有力
  • 开源Agent平台Dify源码剖析系列(六)核心模块core/agent之CotCompletionAgentRunner
  • Web开发 01
  • Vue.js 的 Composition API 深度解析:构建高效可维护的前端逻辑
  • 让大模型输出更加规范化——指定插件
  • LVS部署DR模式集群