C语言中函数strlen等的实现

来源:互联网 发布:中医客户档案软件 编辑:程序博客网 时间:2024/06/15 02:51
#include <stdio.h>
//#include <string.h>
#define MAX_SIZE 1024/*把值定义在外面容易修改*/

int my_strlen(char *str)
{
    int len = 0;
    while(*str != '\0')
    {
        len++;
str++;
    }
    return len;
}


char*my_strcpy(char*dest,char*str1)
{
    char*temp = dest;/*不要用形参作运算,否则返回值将不是dest的首地址*/
    while(*str1 !='\0')
    {
        *temp = *str1;
temp++;
str1++;
    }
    *temp = '\0';/*手动加上结束标志符*/
    return dest;
}


int my_strcmp(char*str2,char*str3)
{
    while(*str2 != '\0'&& *str3 != '\0')
    {
        if(*str2 <* str3)
        {
            return -1;  
        }
        if(*str2 > *str3)
        {
            return 1;
        }
str2++;
str3++;
    }
    if((*str2 == '\0')&&(*str3 == '\0'))
        return 0;
    if((*str2 == '\0')&&(*str3 != '\0'))
        return -1;
    if((*str2 != '\0')&&(*str3 == '\0'))
        return 1;
}


char*my_strcat(char*str4,char*str5)
{
    char*result = str4;
    //char*result2 = str5;
    while(*result != '\0')
    {
        result++;
    }
    //char*result1 = result;
    while(*str5 !='\0')
    {
        *result = *str5;
str5++;
result++;
    }
    *result = '\0';
    return str4;
}


int main()
{
    int result;
    char str[MAX_SIZE];
    printf("请输入一个字符:\n");
    scanf("%s",str);
    result = my_strlen(str);
    printf("字符的长度为:%d\n",result);


    char str1[MAX_SIZE];
    char dest[MAX_SIZE] = {0};
    printf("请输入一个字符串:\n");
    scanf("%s",str1);
    char*result2 = my_strcpy (dest,str1);
    printf("dest = %s\n",dest);
    printf("result2 = %s\n",result2);


    char str2[MAX_SIZE];
    char str3[MAX_SIZE];
    printf("请输入第一个字符串:\n");
    scanf("%s",str2);
    printf("请输入第二个字符串:\n");
    //getchar();
    scanf("%s",str3);
    //getchar();
    int result3 = my_strcmp(str2,str3);
    printf("result3 = %d\n",result3);


    char str4[MAX_SIZE];
    char str5[MAX_SIZE];
    printf("请输入第一个字符串:\n");
    scanf("%s",str4);/*gets函数可以录入空格,但空格在数组里面显示成‘‘\0’*/
    //gets(str4);
    printf("请输入第二个字符串:\n");
    scanf("%s",str5);
    //gets(str5);
    char *result4 = my_strcat(str4,str5);
    printf("result4 = %s\n",result4);


    return 0;
}

0 0
原创粉丝点击