C 各种库函数的实现
来源:互联网 发布:中标麒麟安装mysql 编辑:程序博客网 时间:2024/06/05 12:47
各种库函数的实现!!!!!
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
#include<assert.h>
////模拟实现strncpy
//char *my_strncpy(char *b, char *a,int count)
//{
// assert(a);
// assert(b);
// char *ret = b;
// while (*b!='\0')
// {
// b++;
// }
// while (count--)
// {
// *b++ = *a++;
// }
// *b = '\0';
// return ret;
//}
//int main()
//{
// char a[] = "abcdef";
// char b[5] = {0};
// int n = 3;
// printf("%s\n", my_strncpy(b, a, n));
// return 0;
//}
//模拟实现strcpy
//void my_strcpy(char *b, char *a)
//{
// assert(a);
// assert(b);
// while (*b != '\0')
// {
// b++;
// }
// while (*b++ = *a++)
// {
// ;
// }
//}
//int main()
//{
// char a[] = "abcdef";
// char b[20] = { 0 };
// my_strcpy(b,a);
// printf("%s\n",b);
// return 0;
//}
////模拟实现strncat
//void my_strncat(char *a, const char *b,int count)
//{
// char *ret = a;
// assert(a);
// assert(b);
// while (*a != '\0')//(*a)
// {
// a++;
// }
// //a--;
// //while (count--)
// // if (!(*a++ = *b++))
// // return(ret);
// /**a = '\0';
// return(ret); */
// while (count--)
// {
// *a++=*b++;
// }
//
// return ret;
//}
//int main()
//{
// char a[20] = "abcd";
// char b[] = "efga";
// my_strncat(a, b, 3);
// printf("%s\n",a);
// return 0;
//}
////模拟实现strcat
//char* my_strcat(char *a, const char *b)
//{
// char *ret = a;
// assert(a);
// assert(b);
// while (*a!='\0')//(*a)
// {
// a++;
// }
// while (*a++ = *b++)//把'\0'也复制了
// {
// ;
// }
// return ret;
//}
//int main()
//{
// char a[20] = "abcd";
// char b[] = "efga";
// printf("%s\n",my_strcat(a,b));
// return 0;
//}
////模拟实现strncmp
//int my_strncmp(const char *a, const char *b,int count)
//{
// assert(a);
// assert(b);
// if (!count)
// {
// return 0;
// }
// while (count--)
// {
// if (*a == 0 || *a != *b)
// {
// return(*a-*b);
// }
// a++;
// b++;
// }
// return 0;
//}
//int main()
//{
// char a[] = "abcdf";
// char b[] = "abfde";
// int n=3;
// int ret = my_strncmp(a, b, n);
// printf("%d\n", ret);
// return 0;
//}
////模拟实现strcmp
//// returns - 1 if src < dst
//// returns 0 if src == dst
//// returns + 1 if src > dst
//int my_strcmp(const char *a,const char *b)
//{
// assert(a);
// assert(b);
// while ((*a) == (*b))
// {
// if (*a == '\0') return 0;
// a++;
// b++;
// }
// if (*a>*b) return 1;//return *a-*b
// else return -1;//return *a-*b
//
//}
//int main()
//{
// char a[] = "abcdf";
// char b[] = "abcdg";
// int ret=my_strcmp(a, b);
// printf("%d\n",ret);
// return 0;
//}
////2
////模拟实现memcpy
//void * my_memcpy(void *dest,const void *src, int count)
//{
//
// void *ret = dest;
// char *d = (char *)dest;
// char *s = (char *)src;
// assert(dest != NULL);
// assert(src != NULL);
// while (count--)
// {
// *d++ = *s++;
// //d++;
// //s++;
// }
// return ret;
//}
//int main()
//{
// int a[] = {1,2,3,4,5,6,7,8,9,0};
// int b[10] = {0};
// int len = sizeof(a);
// int i = 0;
// printf("%d\n",len);
// for (i=0; i <10; i++)
// {
// printf("%d ",a[i]);
// }
// printf("\n");
// //strcpy((char *)b, (char *)a);
// my_memcpy(b,a,len);
// for (i=0; i <10; i++)
// {
// printf("%d ", b[i]);
// }
// printf("\n");
// return 0;
//}
////模拟实现memmove
//void* my_memmove(void *dest,const void *src, int count)
//{
// assert(dest != NULL);
// assert(src != NULL);
// char *d = (char *)dest;
// char *s = (char *)src;
// if ((d <= s) || (d >= (s + count)))
// {
// while (count--)
// {
// *d++ = *s++;
// //d++;
// //s++;
// }
// }
// else
// {
// d = (char *)dest + count - 1;
// s = (char *)src + count - 1;
// while (count--)
// {
// *d-- = *s--;
// //s--;
// //d--;
// }
// }
// return d;
//}
//int main()
//{
// char s[] = "1234567890";
// printf("%s\n", s);
// char* p1 = s+1;
// char* p2 = s + 2;
// my_memmove(p2, p1, 5);
// printf("%s\n", s);
// return 0;
//}
- C 各种库函数的实现
- 各种库函数的实现
- c库函数的实现
- 常用库函数的C实现
- C 字符串 库函数 的实现
- C库函数atoi的实现
- c库函数的简单实现
- C语言库函数的实现
- 常用C库函数的C实现
- C语言库函数strstr的实现
- C库函数strlen的三种实现。
- C语言一个库函数的实现
- C语言字符串库函数的实现
- C语言字符串库函数的实现
- C语言字符串库函数的实现
- C语言字符串库函数的实现
- C语言字符串库函数的实现
- C中常用库函数的简单实现
- X86 Android与ARM Android在应用上的兼容
- 李涛PS高手之路-图片云
- 剑指offer第42题:单词反转
- 让x86的android模拟器能模拟arm架构系统
- 机器学习也感性:90后软妹纸(张睿卿)的编程之路
- C 各种库函数的实现
- Unity3d获取重力感应使手机黑屏
- POJ - 2406 Power Strings
- 实现滑动的七种方法(Android群英传)
- 在ADO.NET中使用参数化SQL语句的大同小异
- Linked List->single linked list
- CSS-display(显示)与visibility(可见性)
- [Anaconda] 常用包的安装命令
- 2016.7.31