1.strcpy
#include <stdio.h> #include <windows.h> #include <assert.h> void my_strcpy(char *dest, const char *src) //strcpy { assert(src); assert(dest); while (*dest++ = *src++) { ; } } int main() { char arr1[20] = {0}; char arr2[] = "abcdef"; my_strcpy(arr1, arr2); printf("%s\n",arr1); system("pause"); return 0; }
2.strncpy
#include <stdio.h> #include <assert.h> #include <windows.h> void my_strncpy(char *dest, const char *src, int n) //strncpy { assert(src); assert(dest); while ((n--) && (*dest++ = *src++)) { ; } } int main() { char arr1[20] = {0}; char arr2[] = "abcdef"; int n = 0; printf("Please Enter copy number:"); scanf("%d",&n); my_strncpy(arr1, arr2, n); printf("%s\n",arr1); system("pause"); return 0; }
3.strcat
#include <stdio.h> #include <assert.h> #include <windows.h> #include <string.h> void my_strcat(char *dest, const char *src, int len) //strcat { char *ret = dest + len; assert(src); while (*ret++ = *src++) { ; } } int main() { char arr1[20] = "abc"; char arr2[] = "def"; int len = strlen(arr1); my_strcat(arr1, arr2, len); printf("%s\n",arr1); system("pause"); return 0; }
4.strncat
#include <stdio.h> #include <assert.h> #include <windows.h> #include <string.h> void my_strcat(char *dest, const char *src, int len1, int len2, int n) //strncat { char *ret = dest + len1; assert(dest); assert(src); assert(len2 >= n ); while ((n--) && (*ret++ = *src++)) { ; } } int main() { char arr1[20] = "abc"; char arr2[] = "def"; int len1 = strlen(arr1); int len2 = strlen(arr2); int n = 0; printf("Please Enter cat number:"); scanf("%d",&n); my_strcat(arr1, arr2, len1, len2, n); printf("%s\n",arr1); system("pause"); return 0; }
5.strcmp
#include <stdio.h> #include <assert.h> #include <windows.h> int my_strcmp(const char *dest, const char *src) //strcmp { int ret = 0; while (!(ret = (unsigned char)*dest-(unsigned char)*src) && *dest) { dest++; src++; } return ret; } int main() { int ret = 0; char arr1[] = "abcde"; char arr2[] = "abcdef"; ret = my_strcmp(arr1, arr2); if (ret == 0) { printf("%s = %s", arr1, arr2); } else if (ret < 0) { printf("%s < %s", arr1, arr2); } else { printf("%s > %s", arr1, arr2); } system("pause"); return 0; }
6.strncmp
#include<stdio.h> #include<stdlib.h> #include<assert.h> #include<string.h> int my_strncmp(const char *dest, const char *src, int n) //strncmp { int ret = 0; assert(dest); assert(src); assert(n); while( (n--) && !(ret = (unsigned char)*dest-(unsigned char)*src) && *dest ) { dest++; src++; } return ret; } int main() { char arr1[] = "abcdef"; char arr2[] = "abcedef"; int n = 0; int ret = 0; int i = 0; scanf("%d",&n); ret = my_strncmp(arr1, arr2, n); if(ret == 0) { for(i=0; i<n; i++) printf("%c",arr1[i]); printf("="); for(i=0; i<n; i++) printf("%c",arr2[i]); } else if(ret < 0) { for(i=0; i<n; i++) printf("%c",arr1[i]); printf("<"); for(i=0; i<n; i++) printf("%c",arr2[i]); } else { for(i=0; i<n; i++) printf("%c",arr1[i]); printf(">"); for(i=0; i<n; i++) printf("%c",arr2[i]); } system("pause"); return 0; }
7.memcpy
#include <stdio.h> #include <windows.h> #include <assert.h> void *my_memcpy(void *dest, const void *src, int n) //my_memcpy { char *pdest = (char *)dest; char *psrc = (char *)src; assert(dest); assert(src); while ((n--) && (*pdest++ = *psrc++)) { ; } return dest; } int main() { char arr1[20] = {0}; char arr2[] = "abcdef"; int n = 0; printf("Please Enter n:"); scanf("%d", &n); my_memcpy(arr1, arr2, n); printf("%s", arr1); system("pause"); return 0; }
8.memmove
#include <stdio.h> #include <windows.h> #include <assert.h> #include <string.h> void *myMemMove(void *dst, const void *src, int count) //mymemmove { char *chardst = (char *)dst; char *charsrc = (char *)src; char *endsrc = charsrc + count - 1; char *enddst = chardst + count - 1; assert(src); assert(dst); if ((charsrc < chardst) && (chardst < charsrc + count)) { while (count--) { *enddst-- = *endsrc--; } } else { while (count--) { *chardst++ = *charsrc++; } } return dst; } int main() { char arr[64] = "abcdefg"; int n = 0; printf("Please Enter n:"); scanf("%d", &n); myMemMove(arr+1, arr, n); printf("%s", arr); system("pause"); return 0; }