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;
标准未规定用于提示不相等的具体值。