自编字符串函数

来源:互联网 发布:dock软件 编辑:程序博客网 时间:2024/05/08 05:12

//计算字符串的长度

int my_strlen(char *s)

{
    int i = 0;
    while(*s != '\0')
    {
        i++;
s++;
    }
    return i;
}

//将字符数组str的内容拷贝到字符数组dest中
char *my_strcpy(char *dest,char *str)
{
    char *temp = dest;
    while(*str != '\0')
    {
        *temp= *str;
temp++;
        str++;
    }
    *temp = '\0';
    
    return dest;
}

//将字符数组str的前num位拷贝到字符数组dest中 
char *my_strncpy(char *dest,char *str,int num)
{
    int i;
    char *temp = dest;
    for(i = 0;i < num; i++)
    {
        *temp = *str;
temp++;
str++;
    }
    *temp = '\0';
    return dest;
}

//将字符数组dest的内容加接到字符数组str中
char *my_strcat(char *str,char *dest)
{
     char *temp = str; 
     while(*temp != '\0' )
     {
         temp++;
     }
     while( *dest != '\0')
     {
         *temp = *dest;
temp++;
dest++;
     }
     *temp = '\0';
     return str;
}

//将字符数组dest的前num位加接到字符数组str中
char *my_strncat(char *str,char *dest,int num)
{
    int i;
    char *temp = str;
    while(*temp != '\0')
    {
        temp++;
    }
    for(i = 0;i < num;i++)
    {
        *temp = *dest;
temp++;
dest++;
    }
    *temp = '\0';
    return temp;
}

//比较两个字符数组,如果相等,返回0,

//如果出现前一个字符串中第一个大于后一个字符,返回1

//如果出现前一个字符串中第一个小于后一个字符,返回-1

int my_strcmp(char *str,char*dest)
{
    int i = 0;
    int j = my_strlen(dest);
    while(*str != '\0' && *dest != '\0')
    {
        if(*str == *dest)
{
   str++;
   dest++;
   i++;
   if(j == i)
   {
       return 0;
   }
}
else
{
 return  (*str - 'a') > (*dest -'a')?1:-1;
 
}
    }
   

}



1 0