C语言:实现Strcmp()函数和Memcpy()函数
我是一名在校大学生,初次写博客,希望各位大佬不喜勿喷,这个小程序,仅供参考,希望对大家有所帮助。
分析题意:
1.Strcmp()函数,当s1<s2时,返回为负数;当s1==s2时,返回值=0;当s1>s2时,返回正数。
2.Memcpy()函数,从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。
#include <stdio.h>
void Strcmp(char *str1,char *str2);
void Memcpy(char *str1,char *str2,int n);
int main()
{
char str1[6]={'a','b','c','d','e'};
char str2[6]={'a','e','c','d','a'};
char str3[6];
int count=3;
Strcmp(str1,str2);
Memcpy(str1,str2,count);
return 0;
}
//当s1<s2时,返回为负数;当s1==s2时,返回值=0;当s1>s2时,返回正数。
void Strcmp(char *str1,char *str2)
{
printf("---------Strcmp---------\n");
int i;
for(i=0;(str1[i]!='\0' || str2[i]!='\0');i++)
{
printf("str1[%d]-str2[%d]=%d\n",i,i,str1[i]-str2[i]);
}
}
//从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。
void Memcpy(char *str1,char *str2,int n)
{
printf("---------Memcpy---------\n");
int i;
for(i=0;i<n;i++)
{
str2[i]=str1[i];
}
str2[i++]='\0';
for(i=0;str2[i]!='\0';i++)
{
printf("str3[%d]=%c\n",i,str2[i]);
}
}
/*
//----------样例输出----------
---------Strcmp---------
str1[0]-str2[0]=0
str1[1]-str2[1]=-3
str1[2]-str2[2]=0
str1[3]-str2[3]=0
str1[4]-str2[4]=4
---------Memcpy---------
str3[0]=a
str3[1]=b
str3[2]=c
*/
希望多多支持!