您的位置:首页 > 其它

自制函数实现strlen、strcpy、strcmp、strcat函数

2018-01-29 19:26 483 查看
C语言代码实现如下:

/*************************************************************************
> File Name: 1.c
> Author: Macro Red
> Mail: macrored@foxmail.com
> Environment: Lunix Ubuntu 16.04 LTS
> Created Time: 2018-01-29 16:36
************************************************************************/

/* Standard includes. */
#include <stdio.h>
/* Library includes. */
/* User files */

int MyStrlen(char a[]);
int MyStrlen2(const char* s);
char *MyStrcpy(char a[], const char b[]);
int MyStrcmp(const char a[], const char b[]);
char *MyStrcat(char a[], const char b[]);

/**
* @brief main function
* @param None
* @retval None
*/
int main(void)
{
char ch1[20] = {0}, ch2[20] = "Hello";

printf("ch1:%s\tch2:%s\n", ch1, ch2);
printf("MyStrlen(ch1):%d,MyStrlen(ch2):%d\n", MyStrlen(ch1), MyStrlen(ch2));
printf("MyStrcmp(ch1,ch2):%d\n", MyStrcmp(ch1,ch2));
printf("MyStrcat(ch1,ch2):%s\n", MyStrcat(ch1,ch2));
printf("MyStrcpy(ch1,ch2):%s\n", MyStrcpy(ch1,ch2));
printf("ch1:%s\tch2:%s\n", ch1, ch2);

return 0;
}

/**
* @brief user "strlen"
* @param char a[]
* @retval int
*/
int MyStrlen(char a[])
{
int count = 0;
while(a[count++] != '\0');
return count-1;
}

/**
* @brief user "strlen2"
* @param char a[]
* @retval int
*/
int MyStrlen2(const char* s)
{
return (*s?(strlen(s + 1) + 1) : 0);
}

/**
* @brief user "strcpy"
* @param char a[], const char b[]
* @retval None
*/
char *MyStrcpy(char a[], const char b[])
{
int i;
for(i = 0; b[i] != '\0'; i++)
{
a[i] = b[i];
}
a[i] = '\0';
return a;
}

/**
* @brief user "strcmp"
* @param const char a[], const char b[]
* @retval int
*/
int MyStrcmp(const char a[], const char b[])
{
int i;
for(i = 0; a[i] != '\0' && b[i] != '\0'; i++)
{
if(a[i] < b[i])
return -1;
else if(a[i] > b[i])
return 1;
}

if(a[i] == '\0' && b[i] == '\0')
return 0;
else if(a[i] == '\0')
return -1;
else if(b[i] == '\0')
return 1;

return 0;
}

/**
* @brief user "strcat"
* @param char a[], const char b[]
* @retval None
*/
char *MyStrcat(char a[], const char b[])
{
int a_falg, i;
a_falg = MyStrlen(a);
for(i = 0; b[i] != '\0'; i++)
{
a[i+a_falg] = b[i];
}
a[i+a_falg] = '\0';
return a;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C arithmetic
相关文章推荐