用C语言编写以下函数内部实现及其应用
1,char *my_strcpy(char* desc, const char* src);,
2,int my_strlength(const char* src);
3,int my_strcmp(const char* str1, const char* str2);
4,char *my_strcat(char *str1,char *str2);
一,my_strcat 字符串连接函数
将字符串str2的内容拷贝到str1的后面,返回str1所指的地址
char *my_strcat(char *str1,char *str2)
{
if (str1 == NULL || str2 == NULL)
{
return NULL;
}
while(*str1 != '\0') // 第一步:找出str1字符串的结尾
{
str1 ++;
}
while(*str2 != '\0') //第二步:将str2字符串添加到str1字符串
{
*str1 = *str2;
str1++;
str2++;
}
return str1; //返回str1
}
int main(void)
{
char nameString1[]="小武哥";
char nameString2[]="编程";
char nameOut[50]={0};
my_strcat(nameOut,nameString1);
printf("nameOut的内容是:%s \r\n",nameOut);
my_strcat(nameOut,nameString2);
printf("nameOut的内容是:%s \r\n",nameOut);
return 0;
}
二,my_strcmp比较字符串函数
对str1和str2两个字符串比较大小,相同出0,不同出差值
int my_strcmp(const char* str1, const char* str2)
{
while((*str1) && (*str2) && (*str1 == *str2))
{
str1++;
str2++;
}
return *str1 - *str2;
}
int main(void)
{
char WifiPassword[]="123456789";
char PasswordInput[16];
char flag;
scanf("%s",PasswordInput);
printf("%s",PasswordInput);
flag = my_strcmp(WifiPassword,PasswordInput);
if(flag == 0)
{
printf("密码正确");
}else
{
printf("密码c错误");
}
printf("\r\n");
return 0;
}
三,my_strcpy和my_strlength函数
将src字符串复制到desc中,返回desc所指地址
char *my_strcpy(char* desc, const char* src)
{
char *str;
if (desc == NULL || src == NULL) //内存正常判断
{
return NULL;
}
str = desc;
while(*src != '\0') // 与src中有\0'字符串结束
{
*str = *src;
str ++;
src ++;
}
return desc;
}
输入一个字符串src,返回字符串src的长度
int my_strlength(const char* src)
{
int len = 0;
if (src == NULL)
{
return 0;
}
while (*src++ != '\0')
{
len++;
}
return len;
}
int main(void)
{
char strTb[]="英雄本色-2019";
char dataTb[50]={0};
char len;
len = my_strlength(strTb);
my_strcpy(dataTb,strTb);
printf("dataTb拷贝字符串是:%s 长度len:%u\r\n",dataTb,len);
return 0;
}