string函数的各种实现方式
来源:互联网 发布:亲爱的程序员百度云 编辑:程序博客网 时间:2024/06/05 08:03
<span style="font-size:24px;">//strcpy</span><span style="font-size:18px;"></span><span style="font-size:24px;">#include<stdio.h>#include<assert.h>char* my_strcpy(char *str1,const char *str2){char *ret=str1;assert(str1);assert(str2);while(*str2 != '\0'){*str1++=*str2++;}return ret;}int main(){char arr1[]="abcdefg";char arr2[20]={0};my_strcpy(arr2,arr1);printf("%s\n",arr2);return 0;}</span>
<span style="font-size:24px;">//strncat#include<stdio.h>#include<assert.h>char *my_strncat(char *str1,const char *str2,int num){char *ret=str1;assert(*str1);assert(*str2);while(*str1++){;}while(num--){if(!(*str1++=*str2++)){return ret;}}}int main(){char arr1[20]="awe are ";char arr2[]="happy.";char *ret=my_strncat(arr1,arr2,8);printf("%s\n",ret);return 0;}</span>
<span style="font-size:24px;">//strcmp#include<stdio.h>#include<assert.h>int my_strcmp(const char *dest,const char *src){assert(dest);assert(src);while(!(*src-*dest)&&*dest){++src,++dest;}return *dest-*src;}int main(){char arr1[]="hello";char arr2[]="hgdfsh";int ret=my_strcmp(arr1,arr2);printf("%d\n",ret);return 0;}</span>
<span style="font-size:24px;">//memcpy#include<stdio.h>#include<assert.h>void *my_memcpy(void *dest,const void *src,size_t count){void *ret=dest;char *pdest=(char *)dest;char *psrc=(char *)src;assert(dest);assert(src);while(count--){*pdest++=*psrc++;}return ret;}int main(){char arr1[]="abcde";char arr2[10]={0};unsigned int count=sizeof(arr1)/sizeof(arr1[0]); char *tmp=my_memcpy(arr2,arr1,count);printf("%s\n",tmp);}</span>
<span style="font-size:24px;">//memmove#include<stdio.h>#include<assert.h>void *my_memmove(void *dest,const void *src,int num){void *ret=dest;char *pdest=(char *)dest;char *psrc=(char *)src;assert(dest);assert(src);if(pdest > psrc){while(num--){*pdest=*psrc;dest=pdest+num+1;src=psrc+1;}}else{while(num--){*pdest=*psrc;dest=pdest+1;src=psrc+1;}}return ret;}int main(){char arr1[]="abcde";char arr2[10]={0};unsigned int count=sizeof(arr1)/sizeof(arr1[0]); my_memmove(arr2,arr1,count);printf("%s\n",arr2);return 0;}</span>
<span style="font-size:24px;">#include <stdio.h>#include <string.h>#include <assert.h>char *my_strncpy(char *dest,const char *src, int count){char *ret = dest;assert(dest);assert(src);//src---->>"abc"; count=6while(count && (*dest++ = *src++)){count--;}if(count > 0){while(--count){*dest++ = '\0';}}return ret;}</span>
<span style="font-size:24px;"></span><pre name="code" class="html">int main(){char arr1[]="abcdefg";char arr2[20]={0};my_strcpy(arr2,arr1);printf("%s\n",arr2);return 0;}
0 0
- string函数的各种实现方式
- C++--String类型各种重载函数的实现
- C++--String类型各种重载函数的实现
- 各种 string 的前缀编码方式
- string类型的各种构造函数
- switch(String)的实现方式
- string各种函数总结
- 实现各种功能的函数
- c++:(各种)构造函数的调用方式
- web程序模板的各种实现方式
- 合并排序的各种实现方式
- Singleton模式的各种实现方式。
- CSS居中的各种实现方式
- CSS居中的各种实现方式
- string.h函数的实现
- string四个函数的实现
- 进度条实现---各种方式
- 实现string类的几种方式
- android之Binder
- 数据库系统概念学习笔记2
- CString、string、char*
- 详解 ARM Linux启动过程分析(2)
- Python学习笔记13:Python面向对象编程
- string函数的各种实现方式
- java夯实基础系列:注解
- jQuery 从零开始学习 (一) 开天辟地入门篇
- uwp后退按钮手机版
- C# WinForm 关闭登陆窗体,打开主窗体的实现.
- 【Mybatis】深入浅出MyBatis(5)-插件原理
- 【移动端兼容问题研究】javascript事件机制详解(涉及移动兼容)
- Easy 292题 Nim Game
- 架构漫谈(二):认识概念是理解架构的基础