strcpy,strcmp,strcat,strlen的实现以及大概介绍(上)

1.实现strlen函数:求字符串的长度

#include<stdio.h>

int my_strlen(char *parr)
{
    int count = 0;
    int i = 0;
    while  (*parr++)
    {
        count++;

    }
    return count;
}
int main()
{
    char *parr="yu";
    int len = my_strlen(parr);
    printf("%d\n",len);

    return 0;
}

函数原型:
size_t strlen (char const *string)
此函数有一点需要注意,就是返回值为无符号整型
例如:
if(strlen(x)>=strlen(y))
if(strlen(x)-strlen(y)>=0)
前者可以正常比较字符串长度的大小,后者不行,因为两个size_t之差仍是size_t ;

2.实现strcmp函数;目标比较两字符串之间的大小

#include<stdio.h>
#include<string.h>
int my_strcmp(char *p,char *q)
{
    int sra = 0; 
    char *num = NULL;

    sra = *p-*q;   
    if (sra > 0)    
        return 1;
    else if(sra < 0)
        return -1;

     while (( *p!='\0')||(*q!='\0'))
    {
       sra = *p-*q;
       p++;
       q++;

    }

     if((*p == '\0')&&(*q != '\0'))
         return -1;
     else if((*p != '\0')&&(*q == '\0'))
         return 1;
     else 
         return 0;

}
int main()
{
    char *s1="hello "; 
    char *s2="jello ";   
    int num = my_strcmp(s1,s2);
    //char num  = strcmp(s1,s2) ;
    if (num == 1)           
        printf("s1大于s2\n");
    else if (num == -1)
            printf("s1小于s2\n");
    else    
        printf("s1等于s2\n");
    return 0;
}

函数原型:
char *strcpy(char const *s1,char const *s2)
比较方式:
1. 最先出现的不匹配的字符中较小的那个字符所在的字符中被认为“小于”
2.如果其中一个字符串是另外一个字符串的前面一部分,那么这个字符串“小于”(也就是先出现’\0’)
注意:若s1大于s2,则返回值大于0;
若s1小于s2,则返回值小于0;
若s1等于s2,则返回值等于0。
不要认为返回值大于零就返回1、小于零-1;
标准未规定用于提示不相等的具体值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值