strcpy strcmp memmove

Strcpy实现:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<assert.h>
char*my_strcpy(char*dest, const char*src)
{
char*ret = NULL;
assert(dest);
assert(src);
ret = dest;
while (*dest++ = *src++)
{}
return ret;
}
int main()
{
char arr[10];
my_strcpy(arr, "bit_tech");
printf("%s\n", arr);
system("pause");
return 0;
}

结果:

bit_tech

Strcmp实现:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<assert.h>
int*my_strcmp(const char*str1, const char*str2)
{
assert(str1);
assert(str2);
while (*str1== *str2)
{
if (*str1 == ‘\0‘)
{
return 0;
}
str1++;
str2++;
}
return*str1 - *str2;
}
int main()
{
char*p1 = "abcdef";
char*p2 = "acbcde";
int ret=my_strcmp(p1,p2);
if (ret > 0)
{
printf("p1>p2\n");
}
else if (ret = 0)
{
printf("p1=p2\n");
}
else
printf("p1<p2\n");
system("pause");
return 0;
}

结果:

p1<p2

Memmove实现:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<assert.h>
void*my_memmove(void*dest, const void*src,size_t count)
{
char*ret = NULL;
char*pdest = (char*)dest;
char*psrc = (char*)src;
ret = dest;
assert(dest);
assert(src);
if ((pdest<psrc + count) && (pdest>psrc))//从后向前拷贝
{
while (count--)
{
pdest[count] = psrc[count];
}
}
else
{
while (count--)
{
*(pdest++) = *(psrc++);
}
}
return ret;
}
int main()
{
int i = 0;
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
my_memmove(arr + 3, arr + 1, 4 * 4);
for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
{
printf("%d ", arr[i]);
}
printf("\n");
system("pause");
return 0;
}

结果:1 2 3 2 3 4 5 8 9

时间: 2024-10-29 19:10:55

strcpy strcmp memmove的相关文章

各种字符串函数(strcpy,strcmp,strlen)之深度剖析

//字符串复制函数1 void strcpy1(char str1[], char str2[]){ int i = 0; for (; str2[i] != '\0'; i++){ str1[i] = str2[i]; } str1[i] = '\0'; } //2 void strcpy2(char str1[], char str2[]){ int i = 0; while (str1[i] = str2[i])i++; } //字符串长度函数1 int strlen1(char str[

strlen,strcat,strcpy,strcmp的实现

自己设计实现strlen,strcat,strcpy,strcmp. int my_strlen(char *a) { int count=0; while(*a) { a++; count++; } return count; } char* my_strcat(char *a,char *b) { char *c; c=a; while(*a) { a++; } while(*b) { *a++=*b++; } return c; } char* my_strcpy(char *c,char

转载 C++常用库函数atoi,itoa,strcpy,strcmp的实现

C++常用库函数atoi,itoa,strcpy,strcmp的实现 C语言字符串操作函数 1. 字符串反转 - strRev2. 字符串复制 - strcpy3. 字符串转化为整数 - atoi4. 字符串求长 - strlen5. 字符串连接 - strcat6. 字符串比较 - strcmp7. 计算字符串中的元音字符个数8. 判断一个字符串是否是回文1. 写一个函数实现字符串反转 版本1 - while版 void strRev(char *s){    char temp, *end 

strlen strcat strcpy strcmp 自己实现

strlen strcat strcpy strcmp 自己实现 strlen include <stdio.h> #include <string.h> #include <assert.h> size_t my_strlen(const char* str){ assert(str != NULL); const char *tmp = str; size_t count = 0; while(*tmp++ != '\0'){ count++; } return c

模拟实现部分库函数(strcpy,strcmp,strcat,strstr,memcpy,memmove,memset)

//1.strcpy(拷贝) char* my_strcpy(char*dst, const char*src) {  assert(dst);  assert(src);  char* cp = dst;  while (*cp++ = *src++)  {   ;  }  return dst; } //2.strcat(连接) char* my_strcat(char*dst, const char*src) {  assert(dst);  assert(src);  char* cp 

【C语言】str类与men库函数的实现(如:strcpy,strcmp,strstr,strcat,memmove,memcpy)

strcpy 拷贝源字符串到子字符串,包括'\0'. 代码实现: char* strcpy(char* dst,const char* src) {     assert(src);     char* ret = dst;     while (*src)     {         *dst = *src;         src++;         dst++;     }     *dst = '\0';     return ret; } 2.strncpy: strncpy与str

教教大家一些strcpy,strcmp,strcat,strlen函数的写法

VC源码: strcmp函数的写法: #include<stdio.h> #include<string.h> int strcmp1(char* a, char* b) { for(;*a==*b;a++,b++) if(*a!='\0') return 0; return *a - *b; } main() {  int l; char a[10]={"db"}; char b[10]={"cb"}; l=strcmp1(a,b); pr

strlen, strcpy, strcmp, memcpy 的实现

#include <iostream> using namespace std; namespace MyString { size_t strlen(const char* str); char* strcpy(char* dst, const char* src); int strcmp(const char* str1, const char* str2); } size_t MyString::strlen(const char* str) { if (str == NULL) ret

C基础--字符串操作函数(strlen,strcpy,strcmp,strcat,strstr,strtok)

#include <stdio.h> #include <string.h> int main(void) { //char dest[10]; //#define NULL (void *)0 //char *dest = NULL; //dest是野指针,指向的区域没有可读写空间 //char dest[3]; //char src[] = "hello"; char str1[10] = "hello"; //char str2[10]